Я создаю приложение, которое будет обрабатывать и записывать, когда студент получает информацию от преподавателя в университете, и мне нужен эффективный способ структурирования таблиц. Моя проблема связана с отсутствием ссылочной целостности, вызванной неспособностью создать внешний ключ, который будет ссылаться на СТУДЕНТ только на составную часть ADVISE_HIST, которая является (STUDENT_ID, DATE_ADVISED)ссылка на внешний ключ mysql из составного ключа
вот некоторые из столы
create table STUDENT(
LNAME varchar(50),
FNAME varchar(50),
ID char(9) primary key,
ASSIGNED_ADVISOR_EMAIL varchar(70),
foreign key (ASSIGNED_ADVISOR_EMAIL) references DEP_FACULTY(EMAIL) ON DELETE SET NULL,
IS_ADVISED tinyint(1),
);
create table DEP_FACULTY(
LNAME varchar(50),
FNAME varchar(50),
EMAIL varchar(70) primary key
);
create table ADVISE_HIST(
STUDENT_ID char(9),
/*foreign key (STUDENT_ID) references STUDENT(ID),*/
ACTUAL_ADVISOR_EMAIL char(70) NOT NULL,
foreign key (ACTUAL_ADVISOR_EMAIL) references DEP_FACULTY(EMAIL),
DATE_ADVISED date,
primary key REF_ADVISE_HIST (STUDENT_ID, DATE_ADVISED),
);
Мой вопрос, есть ли способ обойти не в состоянии создать этот ключ или есть лучше структура, я не думал?
Вы не можете ссылаться на столбец 'ID' в таблице' STUDENT', потому что его не существует! Вы имели в виду ссылку «ENUMBER»? – eggyal
извините, я исправил это. это идентификатор. –
Если вы пытаетесь добавить ограничение внешнего ключа ('ALTER TABLE ADVISE_HIST ADD CONSTRAINT FOREIGN KEY (STUDENT_ID) ССЫЛКИ СТУДЕНТА (ID);'), какая ошибка вы получаете? – eggyal