SQL Не удается добавить внешний ключ?

Привет, ребята, я новичок в изучении SQL, пытаюсь создать простую базу данных фильмов для школы, но не могу добавить ошибку ограничения внешнего ключа на скрипку SQL, любые идеи будут очень полезны, спасибо.

CREATE TABLE Actor (
ActorID INT AUTO_INCREMENT PRIMARY KEY,
FName VARCHAR (255),
LName VARCHAR (255)
);

CREATE TABLE Genre (
GenreID INT AUTO_INCREMENT PRIMARY KEY,
GenreType VARCHAR(255)
);


CREATE TABLE Director (
DirectorID INT AUTO_INCREMENT PRIMARY KEY,
FirstName VARCHAR (255),
LastName VARCHAR (255),
MovieID INT,
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)

);


CREATE TABLE Movie (
MovieID INT AUTO_INCREMENT PRIMARY KEY,
MovieTittle VARCHAR (255) NOT NULL,
ReleaseYear INT (4) NOT NULL,
Watched BOOlEAN,
StarRating INT (2),
DirectorID INT,
FOREIGN KEY (DirectorID) REFERENCES Director(DirectorID)
);

CREATE TABLE JunctionMovieGenre (
GenreID INT,
MovieID INT,
FOREIGN KEY (GenreID) REFERENCES Genre(GenreID),
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)
);

CREATE TABLE JunctionMovieActor (
MovieID INT,
ActorID INT,
FOREIGN KEY (ActorID) REFERENCES Actor(ActorID),
FOREIGN KEY (MovieID) REFERENCES Movie(MovieID)
);

person Aaron Lyall    schedule 08.10.2015    source источник
comment
пожалуйста, опубликуйте сообщение об ошибке, которое вы получили   -  person Cfreak    schedule 08.10.2015
comment
Невозможно добавить ограничение внешнего ключа   -  person Aaron Lyall    schedule 08.10.2015


Ответы (1)


Ваш порядок создания таблиц неверен. Просто переместите вверх стол Movie над столом Режиссер. Он должен работать.

Изменить: не рекомендуется ссылаться на две таблицы друг на друга. То, что вы делаете, представляет собой круговой эталонный дизайн, который вовсе не является хорошим дизайном. Однако, если вы действительно хотите этот дизайн, вы можете создать их, но это не будет весело. То же самое касается вставки данных и удаления данных из этих двух таблиц.

Ответы по этой ссылке: В SQL нормально ли, чтобы две таблицы ссылались друг на друга?

person Samuel Lin    schedule 08.10.2015
comment
все та же ошибка, потому что таблица директоров ссылается на таблицу фильмов - person Aaron Lyall; 08.10.2015
comment
Я даже не знаю, почему я добавил это сейчас, я думаю об этом. Большое спасибо за помощь - person Aaron Lyall; 08.10.2015