im пытается создать базу данных для веб-сайта, который обрабатывает университетские классы, но у меня возникают проблемы в моем sql
ER ДИАГРАММА ПОКАЗАНА НИЖЕ
"пользователь", являющийся студентом
"класс" - это классы
"имеет" классы, которые
"хочет" быть классами, которые у ученика нет, но хочет
Я написал запросы для создания 4 таблиц "имеет" "хочет" "пользователь" и "класс", но im получает ошибки
CREATE TABLE Class
(
ClassName varchar(255),
Professor_Name varchar(255),
Start_Time varchar(10),
End_Time varchar(10),
Course_Number varchar(20),
Section_Number varchar(20),
Days varchar(10),
PRIMARY KEY(Course_Number,Section_Number))
;
Теперь перед созданием таблицы "есть" и "хочет" убедитесь, что таблица пользователя уже создана, так как обе эти таблицы будут ссылаться на таблицу пользователей.
CREATE TABLE User
(
Email VARCHAR(255),
first_name VARCHAR(255),
last_name VARCHAR(255),
password VARCHAR(255),
PRIMARY KEY (Email)
);
Теперь мы создадим таблицы и хотим
CREATE TABLE has
(
Email VARCHAR(255),
Course_Number VARCHAR(20),
Section_Number VARCHAR(20),
PRIMARY KEY (Email, Course_Number, Section_Number),
FOREIGN KEY (Email) REFERENCE User (Email),
FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)
);
Аналогично создание таблицы требует
CREATE TABLE wants
(
Email VARCHAR(255),
Course_Number VARCHAR(20),
Section_Number VARCHAR(20),
PRIMARY KEY (Email, Course_Number, Section_Number),
FOREIGN KEY (Email) REFERENCE User (Email),
FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)
);
по какой-то причине на "хочет" и "имеет" таблицу im получить ошибку "не могу добавить ограничение внешнего ключа" im с помощью mysql, типы одинаковы, поэтому я не уверен, почему его не работает, "пользователь" и "класс", таблицы прекрасны, но по какой-то причине другие 2 im получают эту ошибку?
Этот вопрос касается синтаксической ошибки:
Измените это:
FOREIGN KEY (Course_Number) REFERENCES Class (Course_Number),
FOREIGN KEY (Section_Number) REFERENCES Class (Section_Number)
Для того, чтобы:
FOREIGN KEY (Course_Number, Section_Number)
REFERENCES Class (Course_Number, Section_Number)