Przeglądaj źródła

Merge branch 'master' of http://gogs.ngknn.local:3000/EducationalPractic02/Educational

chirikh 6 miesięcy temu
rodzic
commit
4b98673316

+ 1 - 0
~$зработка_БД.docx

@@ -0,0 +1 @@
+	Alexandra	AlexandraVžVž®ÿŒ§ÚD_Wx±]’Ò½4¨ÚÝ"ø

+ 110 - 0
разработка_БД.docx

@@ -0,0 +1,110 @@
+--роли
+create table Roles
+(
+	Id SERIAL primary key,
+	name character varying(30) unique
+);
+--пользователи
+create table Users
+(
+	Id Serial primary key,
+	first_name character varying(30) not null,
+	last_name character varying(30) not null,
+	middle_name character varying(30),
+	mail character varying(50) not null unique,
+	phone_number character varying(20) unique,
+	date_birth date,
+	Id_role int references Roles(Id) not null
+);
+--Кафедры
+create table Departments
+(
+	Id SERIAL primary key,
+	name character varying(70) unique not null
+);
+--Специальности
+create table Specialties
+(
+	Id SERIAL primary key,
+	name character varying(70) unique not null,
+	Id_department int references Departments(Id) not null
+);
+--Группы
+create table "Groups"
+(
+	Id Serial primary key,
+	Id_specialty int references Specialties(Id) not null,
+	start_date date not null,
+	name character varying(5) not null
+);
+--студенты
+create table Students
+(
+	user_Id int references Users(Id) primary key,
+	group_Id int references "Groups"(Id) not null
+);
+--корпусы (филиалы)
+create table Buildings
+(
+	Id serial primary key,
+	Mgr int references Users(Id) not null,--заведующий
+	address character varying(70) not null
+);
+--преподаватели
+create table Teachers
+(
+	user_Id int references Users(Id) primary key,
+	department_Id int references Departments(Id)
+);
+--дисциплины
+create table Disciplines
+(
+	Id serial primary key,
+	name character varying(60) not null,
+	department_Id int references Departments(Id) not null,
+	academic_hours int not null
+);
+--дисциплины преподавателей
+create table TeachersDisciplines
+(
+	Id serial primary key,
+	teacher_Id int references Teachers(user_Id) not null,
+	discipline_Id int references Disciplines(Id) not null
+);
+--дисциплины групп
+create table GroupDiscipline
+(
+	Id serial primary key,
+	semester int,
+	teacher_discipline_Id int references TeachersDisciplines(Id) not null,
+	group_Id int references "Groups"(Id) not null
+);
+--расписание
+create table Timetables
+(
+	Id serial primary key,
+	class_date date not null,
+	class_number smallint,
+	group_discipline_Id int references GroupDiscipline(Id) not null,
+   buildind_Id int references Buildings(Id) not null
+);
+--оценки
+create table StudentGrades
+(
+	Id Serial primary key,
+	student_Id int references Students(user_Id) not null,
+	group_discipline_Id int references GroupDiscipline(Id) not null,
+	graded_at date,
+	grade smallint not null,
+	work_name character varying(70)
+);
+--посещаемость
+create table Attendance
+(
+	Id serial primary key,
+	timetable_Id int references Timetables(Id) not null,
+	student_Id int references Students(user_Id) not null,
+	attended bool not null
+);
+
+

+ 534 - 0
скрипт_заполнения_БД.sql

@@ -0,0 +1,534 @@
+INSERT INTO Roles (name) VALUES ('преподаватель'), ('студент');
+
+INSERT INTO Users (first_name, last_name, middle_name, mail, phone_number, date_birth, Id_role) VALUES
+    ('Александр', 'Иванов', 'Петрович', 'alex.ivanov@example.com', '+12345678901', '1990-03-15', 1),
+    ('Елена', 'Смирнова', 'Андреевна', 'elena.smirnova@example.com', '+12345678902', '1995-08-22', 2),
+    ('Иван', 'Петров', 'Александрович', 'ivan.petrov@example.com', '+12345678903', '1993-05-11', 2),
+    ('Мария', 'Козлова', 'Дмитриевна', 'maria.kozlova@example.com', '+12345678904', '1998-11-30', 2),
+    ('Сергей', 'Соколов', 'Иванович', 'sergey.sokolov@example.com', '+12345678905', '1994-02-25', 1),
+    ('Анна', 'Михайлова', 'Сергеевна', 'anna.mikhailova@example.com', '+12345678906', '1996-07-14', 2),
+    ('Павел', 'Новиков', 'Артемович', 'pavel.novikov@example.com', '+12345678907', '1991-09-03', 2),
+    ('Юлия', 'Федорова', 'Алексеевна', 'yulia.fedorova@example.com', '+12345678908', '1997-04-20', 2),
+    ('Артем', 'Морозов', 'Павлович', 'artem.morozov@example.com', '+12345678909', '1992-12-09', 1),
+    ('Екатерина', 'Волкова', 'Игоревна', 'ekaterina.volkova@example.com', '+12345678910', '1999-01-18', 2),
+    ('Денис', 'Павлов', 'Федорович', 'denis.pavlov@example.com', '+12345678911', '1990-06-27', 2),
+    ('Ольга', 'Семенова', 'Денисовна', 'olga.semenova@example.com', '+12345678912', '1995-10-16', 2),
+    ('Игорь', 'Гончаров', 'Дмитриевич', 'igor.goncharov@example.com', '+12345678913', '1993-03-05', 1),
+    ('Евгения', 'Николаева', 'Олеговна', 'evgenia.nikolaeva@example.com', '+12345678914', '1998-08-24', 2),
+    ('Алексей', 'Кузнецов', 'Владимирович', 'alexey.kuznetsov@example.com', '+12345678915', '1994-01-13', 2),
+    ('Анастасия', 'Ильина', 'Юрьевна', 'anastasia.ilina@example.com', '+12345678916', '1991-07-02', 2),
+    ('Григорий', 'Савельев', 'Антонович', 'grigory.savelyev@example.com', '+12345678917', '1996-11-21', 2),
+    ('Татьяна', 'Беляева', 'Игнатьевна', 'tatyana.belyaeva@example.com', '+12345678918', '1992-04-10', 1),
+    ('Дмитрий', 'Тимофеев', 'Аркадьевич', 'dmitry.timofeev@example.com', '+12345678919', '1997-09-29', 2),
+    ('Елена', 'Калинина', 'Георгиевна', 'elena.kalinina@example.com', '+12345678920', '1999-02-08', 2);
+
+INSERT INTO Departments (name) VALUES
+    ('Отделение инженерии и технологии'),
+    ('Факультет информационных технологий'),
+    ('Кафедра гуманитарных наук');
+   
+INSERT INTO Specialties (name, Id_department) VALUES
+    ('Инженерия программного обеспечения', 1),
+    ('Автоматизация технологических процессов', 1),
+    ('Системный анализ и управление', 1),
+    ('Веб-разработка и программирование', 2),
+    ('Базы данных и информационные системы', 2),
+    ('Компьютерная безопасность', 2),
+    ('Лингвистика', 3),
+    ('Психология', 3),
+    ('История искусств', 3),
+    ('Социология', 3);
+   
+INSERT INTO "Groups" (Id_specialty, start_date, name) VALUES
+    (1, '2023-09-01', '11ИПО'),
+    (1, '2022-09-01', '21ИПО'),
+    (1, '2021-09-01', '31ИПО'),
+    (1, '2020-09-01', '41ИПО'),
+    (2, '2023-09-01', '11АТП'),
+    (2, '2022-09-01', '21АТП'),
+    (2, '2021-09-01', '31АТП'),
+    (2, '2020-09-01', '41АТП'),
+    (3, '2023-09-01', '11САУ'),
+    (3, '2022-09-01', '21САУ'),
+    (3, '2021-09-01', '31САУ'),
+    (3, '2020-09-01', '41САУ'),
+    (4, '2023-09-01', '11ВПР'),
+    (4, '2022-09-01', '21ВПР'),
+    (4, '2021-09-01', '31ВПР'),
+    (4, '2020-09-01', '41ВПР'),
+    (5, '2023-09-01', '11ВРП'),
+    (5, '2022-09-01', '21ВРП'),
+    (5, '2021-09-01', '31ВРП'),
+    (5, '2020-09-01', '41ВРП'),
+    (6, '2023-09-01', '11КБ'),
+    (6, '2022-09-01', '21КБ'),
+    (6, '2021-09-01', '31КБ'),
+    (6, '2020-09-01', '41КБ'),
+    (7, '2023-09-01', '11БД'),
+    (7, '2022-09-01', '21БД'),
+    (7, '2021-09-01', '31БД'),
+    (7, '2020-09-01', '41БД'),
+    (8, '2023-09-01', '11КО'),
+    (8, '2022-09-01', '21КО'),
+    (8, '2021-09-01', '31КО'),
+    (8, '2020-09-01', '41КО'),
+    (9, '2023-09-01', '11ЛИН'),
+    (9, '2022-09-01', '21ЛИН'),
+    (9, '2021-09-01', '31ЛИН'),
+    (9, '2020-09-01', '41ЛИН'),
+    (10, '2023-09-01', '11ПСИ'),
+    (10, '2022-09-01', '21ПСИ'),
+    (10, '2021-09-01', '31ПСИ'),
+    (10, '2020-09-01', '41ПСИ');
+   
+   
+select id from Users where id_role = 1   
+
+INSERT INTO Students (user_id, group_id) values
+(2,1),
+(3,1),
+(4,1),
+(6,1),
+(7,1),
+(8,3),
+(10,3),
+(11,3),
+(12,3),
+(14,3),
+(15,7),
+(16,7),
+(17,7),
+(19,7),
+(20,7);
+
+insert into Teachers values
+(1,1),
+(5,1),
+(9,2),
+(13,2),
+(18,3);
+
+INSERT INTO Disciplines (name, department_id, academic_hours)
+VALUES 
+    ('Программирование на Python', 1, 90),
+    ('Математический анализ', 1, 120),
+    ('Алгоритмы и структуры данных', 1, 100),
+    ('Промышленная автоматизация', 1, 80),
+    ('Веб-дизайн', 2, 80),
+    ('Базы данных и SQL', 2, 100),
+    ('Компьютерная безопасность', 2, 120),
+    ('Системное программирование', 2, 90),
+    ('История искусств', 3, 60),
+    ('Социология', 3, 80),
+    ('Психология', 3, 100),
+    ('Философия', 3, 70);
+
+-- Заполнение таблицы TeachersDisciplines
+-- Преподаватель 1 (Александр Иванов)
+INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
+VALUES 
+    (1, 1), -- Программирование на Python
+    (1, 2), -- Математический анализ
+    (1, 3), -- Алгоритмы и структуры данных
+    (1, 4); -- Промышленная автоматизация
+
+-- Преподаватель 5 (Сергей Соколов)
+INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
+VALUES 
+    (5, 1), -- Программирование на Python
+    (5, 3), -- Алгоритмы и структуры данных
+    (5, 4), -- Промышленная автоматизация
+    (5, 8); -- Системное программирование
+
+-- Преподаватель 9 (Артем Морозов)
+INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
+VALUES 
+    (9, 5), -- Веб-дизайн
+    (9, 6), -- Базы данных и SQL
+    (9, 7), -- Компьютерная безопасность
+    (9, 8); -- Системное программирование
+
+-- Преподаватель 13 (Игорь Гончаров)
+INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
+VALUES 
+    (13, 5), -- Веб-дизайн
+    (13, 6), -- Базы данных и SQL
+    (13, 7), -- Компьютерная безопасность
+    (13, 8); -- Системное программирование
+
+-- Преподаватель 18 (Татьяна Беляева)
+INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
+VALUES 
+    (18, 9), -- История искусств
+    (18, 10), -- Социология
+    (18, 11), -- Психология
+    (18, 12); -- Философия
+
+    
+-- Для преподавателя с ID 1 (Александр Иванов)
+-- Группа 11ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 1), -- Программирование на Python
+    (1, 2, 1), -- Математический анализ
+    (1, 3, 1), -- Алгоритмы и структуры данных
+    (1, 4, 1); -- Промышленная автоматизация
+
+-- Группа 21ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 2), -- Программирование на Python
+    (1, 2, 2), -- Математический анализ
+    (1, 3, 2), -- Алгоритмы и структуры данных
+    (1, 4, 2); -- Промышленная автоматизация
+
+-- Группа 31ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 3), -- Программирование на Python
+    (1, 2, 3), -- Математический анализ
+    (1, 3, 3), -- Алгоритмы и структуры данных
+    (1, 4, 3); -- Промышленная автоматизация
+
+-- Группа 41ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 4), -- Программирование на Python
+    (1, 2, 4), -- Математический анализ
+    (1, 3, 4), -- Алгоритмы и структуры данных
+    (1, 4, 4); -- Промышленная автоматизация
+
+
+    
+    
+    
+    -- Для преподавателя с ID 1 (Александр Иванов)
+-- Группа 31ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 3), -- Программирование на Python
+    (1, 2, 3), -- Математический анализ
+    (1, 3, 3), -- Алгоритмы и структуры данных
+    (1, 4, 3); -- Промышленная автоматизация
+
+-- Группа 41ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 4), -- Программирование на Python
+    (1, 2, 4), -- Математический анализ
+    (1, 3, 4), -- Алгоритмы и структуры данных
+    (1, 4, 4); -- Промышленная автоматизация
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 5 (Сергей Соколов)
+-- Группа 31ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 5, 3), -- Программирование на Python
+    (1, 3, 3), -- Алгоритмы и структуры данных
+    (1, 4, 3), -- Промышленная автоматизация
+    (1, 8, 3); -- Системное программирование
+
+-- Группа 41ИПО
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 5, 4), -- Программирование на Python
+    (1, 3, 4), -- Алгоритмы и структуры данных
+    (1, 4, 4), -- Промышленная автоматизация
+    (1, 8, 4); -- Системное программирование
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 9 (Артем Морозов)
+-- Группа 11АТП
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 9, 5), -- Веб-дизайн
+    (1, 10, 5), -- Базы данных и SQL
+    (1, 11, 5), -- Компьютерная безопасность
+    (1, 8, 5); -- Системное программирование
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 13 (Игорь Гончаров)
+-- Группа 11АТП
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 9, 5), -- Веб-дизайн
+    (1, 10, 5), -- Базы данных и SQL
+    (1, 11, 5), -- Компьютерная безопасность
+    (1, 8, 5); -- Системное программирование
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 18 (Татьяна Беляева)
+-- Группа 11САУ
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 12, 9), -- Философия
+    (1, 10, 9), -- Социология
+    (1, 11, 9), -- Психология
+    (1, 9, 9); -- История искусств
+     
+ -- Для преподавателя с ID 1 (Александр Иванов)
+-- Группа 41САУ
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 12), -- Программирование на Python
+    (1, 2, 12), -- Математический анализ
+    (1, 3, 12), -- Алгоритмы и структуры данных
+    (1, 5, 12); -- Философия
+
+-- Группа 11ВПР
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 1, 13), -- Программирование на Python
+    (1, 2, 13), -- Математический анализ
+    (1, 3, 13), -- Алгоритмы и структуры данных
+    (1, 5, 13); -- Философия
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 5 (Сергей Соколов)
+-- Группа 41САУ
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 5, 12), -- Философия
+    (1, 3, 12), -- Алгоритмы и структуры данных
+    (1, 4, 12), -- Промышленная автоматизация
+    (1, 6, 12); -- Компьютерная безопасность
+
+-- Группа 11ВПР
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 5, 13), -- Философия
+    (1, 3, 13), -- Алгоритмы и структуры данных
+    (1, 4, 13), -- Промышленная автоматизация
+    (1, 6, 13); -- Компьютерная безопасность
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 9 (Артем Морозов)
+-- Группа 11БД
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 10, 14), -- Базы данных и SQL
+    (1, 11, 14), -- Компьютерная безопасность
+    (1, 12, 14), -- Философия
+    (1, 13, 14); -- История искусств
+
+-- Группа 21БД
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 10, 15), -- Базы данных и SQL
+    (1, 11, 15), -- Компьютерная безопасность
+    (1, 12, 15), -- Философия
+    (1, 13, 15); -- История искусств
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 13 (Игорь Гончаров)
+-- Группа 11БД
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 10, 14), -- Базы данных и SQL
+    (1, 11, 14), -- Компьютерная безопасность
+    (1, 12, 14), -- Философия
+    (1, 13, 14); -- История искусств
+
+-- Продолжаем аналогично для остальных групп.
+
+-- Для преподавателя с ID 18 (Татьяна Беляева)
+-- Группа 11ЛИН
+INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
+VALUES 
+    (1, 9, 19), -- Веб-дизайн
+    (1, 10, 19), -- Базы данных и SQL
+    (1, 11, 19), -- Компьютерная безопасность
+    (1, 12, 19); -- Философия
+
+INSERT INTO Buildings (Mgr, address) VALUES 
+(1, 'ул. Пушкина, д. 10'),
+(5, 'пр. Ленина, д. 25');
+    
+ALTER TABLE Timetables
+RENAME COLUMN buildind_id TO building_id;
+-- Для преподавателя с ID 1 (Александр Иванов)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 1, 1), -- 9:00-10:30 Программирование на Python
+    ('2024-09-02', 2, 1, 1), -- 10:45-12:15 Математический анализ
+    ('2024-09-02', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных
+    ('2024-09-02', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 1, 1), -- 9:00-10:30 Программирование на Python
+    ('2024-09-03', 2, 1, 1), -- 10:45-12:15 Математический анализ
+    ('2024-09-03', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных
+    ('2024-09-03', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+-- Для преподавателя с ID 5 (Сергей Соколов)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 2, 1), -- 9:00-10:30 Программирование на Python
+    ('2024-09-02', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных
+    ('2024-09-02', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация
+    ('2024-09-02', 4, 2, 1); -- 14:30-16:00 Системное программирование
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 2, 1), -- 9:00-10:30 Программирование на Python
+    ('2024-09-03', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных
+    ('2024-09-03', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация
+    ('2024-09-03', 4, 2, 1); -- 14:30-16:00 Системное программирование
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+-- Для преподавателя с ID 9 (Артем Морозов)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 3, 1), -- 9:00-10:30 Веб-дизайн
+    ('2024-09-02', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL
+    ('2024-09-02', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность
+    ('2024-09-02', 4, 3, 1); -- 14:30-16:00 Системное программирование
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 3, 1), -- 9:00-10:30 Веб-дизайн
+    ('2024-09-03', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL
+    ('2024-09-03', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность
+    ('2024-09-03', 4, 3, 1); -- 14:30-16:00 Системное программирование
+-- Для преподавателя с ID 13 (Игорь Гончаров)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 4, 1), -- 9:00-10:30 Программирование на Java
+    ('2024-09-02', 2, 4, 1), -- 10:45-12:15 Веб-дизайн
+    ('2024-09-02', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL
+    ('2024-09-02', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 4, 1), -- 9:00-10:30 Программирование на Java
+    ('2024-09-03', 2, 4, 1), -- 10:45-12:15 Веб-дизайн
+    ('2024-09-03', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL
+    ('2024-09-03', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+-- Для преподавателя с ID 18 (Татьяна Беляева)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 5, 1), -- 9:00-10:30 История искусств
+    ('2024-09-02', 2, 5, 1), -- 10:45-12:15 Лингвистика
+    ('2024-09-02', 3, 5, 1), -- 12:30-14:00 Психология
+    ('2024-09-02', 4, 5, 1); -- 14:30-16:00 Социология
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 5, 1), -- 9:00-10:30 История искусств
+    ('2024-09-03', 2, 5, 1), -- 10:45-12:15 Лингвистика
+    ('2024-09-03', 3, 5, 1), -- 12:30-14:00 Психология
+    ('2024-09-03', 4, 5, 1); -- 14:30-16:00 Социология
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+-- Для преподавателя с ID 1 (Александр Иванов)
+-- Понедельник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-02', 1, 1, 2), -- 9:00-10:30 Программирование на Python
+    ('2024-09-02', 2, 1, 2), -- 10:45-12:15 Математический анализ
+    ('2024-09-02', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных
+    ('2024-09-02', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация
+
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 1, 2), -- 9:00-10:30 Программирование на Python
+    ('2024-09-03', 2, 1, 2), -- 10:45-12:15 Математический анализ
+    ('2024-09-03', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных
+    ('2024-09-03', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+
+ -- Для преподавателя с ID 5 (Сергей Соколов)
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 2, 2), -- 9:00-10:30 Программирование на Python
+    ('2024-09-03', 2, 2, 2), -- 10:45-12:15 Алгоритмы и структуры данных
+    ('2024-09-03', 3, 2, 2), -- 12:30-14:00 Промышленная автоматизация
+    ('2024-09-03', 4, 2, 2); -- 14:30-16:00 Системное программирование
+
+-- Продолжаем аналогично для остальных дней и преподавателей.
+-- Для преподавателя с ID 9 (Артем Морозов)
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 3, 2), -- 9:00-10:30 Веб-дизайн
+    ('2024-09-03', 2, 3, 2), -- 10:45-12:15 Базы данных и SQL
+    ('2024-09-03', 3, 3, 2), -- 12:30-14:00 Компьютерная безопасность
+    ('2024-09-03', 4, 3, 2); -- 14:30-16:00 Системное программирование
+
+    -- Для преподавателя с ID 13 (Игорь Гончаров)
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 4, 2), -- 9:00-10:30 Программирование на Java
+    ('2024-09-03', 2, 4, 2), -- 10:45-12:15 Веб-дизайн
+    ('2024-09-03', 3, 4, 2), -- 12:30-14:00 Базы данных и SQL
+    ('2024-09-03', 4, 4, 2); -- 14:30-16:00 Компьютерная безопасность
+
+-- Для преподавателя с ID 18 (Татьяна Беляева)
+-- Вторник
+INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
+VALUES 
+    ('2024-09-03', 1, 5, 2), -- 9:00-10:30 История искусств
+    ('2024-09-03', 2, 5, 2), -- 10:45-12:15 Лингвистика
+    ('2024-09-03', 3, 5, 2), -- 12:30-14:00 Психология
+    ('2024-09-03', 4, 5, 2); -- 14:30-16:00 Социология
+
+INSERT INTO StudentGrades (student_id, group_discipline_id, graded_at, grade, work_name)
+SELECT 
+    s.user_id,
+    gd.id,
+    now() - interval '1' month * (random() * 12 + 1), -- Случайная дата за последние 12 месяцев
+    floor(random() * 4) + 2, -- Случайная оценка от 2 до 5
+    CASE floor(random() * 4)
+        WHEN 0 THEN 'Контрольная работа'
+        WHEN 1 THEN 'Экзамен'
+        WHEN 2 THEN 'Лабораторная работа'
+        ELSE 'Курсовая работа'
+    END
+FROM 
+    Students s
+JOIN 
+    "Groups" g ON s.group_id = g.id
+JOIN 
+    GroupDiscipline gd ON g.id = gd.group_id;
+ 
+-- Заполняем таблицу Attendance для всех студентов и их дисциплин, учитывая группу студента
+INSERT INTO Attendance (timetable_id, student_id, attended)
+SELECT 
+    tt.id,
+    s.user_id,
+    CASE floor(random() * 2)
+        WHEN 0 THEN true -- Случайно выбираем, посетил ли студент занятие
+        ELSE false
+    END
+FROM 
+    Timetables tt
+JOIN 
+    GroupDiscipline gd ON tt.group_discipline_id = gd.id
+JOIN 
+    Students s ON gd.group_id = s.group_id;