我正在创建一个应用程序,该应用程序将处理和记录学生何时得到大学教员的建议,并且我需要一种有效的方法来构建表格。我的问题来自缺乏参照完整性,这是由于无法创建一个外键,该外键将仅在 ADVISE_HIST 中的复合键的一部分上引用 STUDENT,即 (STUDENT_ID,DATE_ADVISED)
这是一些表格
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),
);
我的问题是,是否有办法解决无法创建此密钥的问题,或者是否有我没有想到的更好的结构?