Задание составлено бестолково, кабинет и аудитория — это одно и то же и обозначает помещение. Вот примерная упрощенная база расписания:
CREATE DATABASE University;
USE University;
-- Таблица преподавателей
CREATE TABLE teachers (
teacher_id INT AUTO_INCREMENT PRIMARY KEY,
fio VARCHAR(255) NOT NULL,
address VARCHAR(255),
position VARCHAR(255),
qualification VARCHAR(255)
);
-- Таблица дисциплин
CREATE TABLE subjects (
subject_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
hours INT,
control_type VARCHAR(255)
);
-- Таблица кабинетов
CREATE TABLE classrooms (
classroom_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
number VARCHAR(255) NOT NULL
);
-- Таблица расписания
CREATE TABLE schedule (
schedule_id INT AUTO_INCREMENT PRIMARY KEY,
teacher_id INT,
subject_id INT,
classroom_id INT,
date DATE,
time TIME,
`group` VARCHAR(255),
FOREIGN KEY (teacher_id) REFERENCES teachers(teacher_id),
FOREIGN KEY (subject_id) REFERENCES subjects(subject_id),
FOREIGN KEY (classroom_id) REFERENCES classrooms(classroom_id)
);
Минимальный список характеристик:
• Номер, ФИО, адрес и должность преподавателя, квалификационная категория;
• код, название дисциплины, количество часов, тип контроля;
• код, название кабинета, номер кабинета;
• номер аудитории, где преподаватель читает свою дисциплину, дата, время, группа.
Один преподаватель может вести несколько дисциплин, и одна дисциплина может вестись несколькими преподавателями.