单个属性用作多个表的外键

时间:2018-09-14 16:36:53

标签: mysql database

我想将Emp_id用作Employee表和Record表的外键。能做到吗?

这是我的代码

CREATE TABLE Empolyee(
EID varchar(8) NOT NULL,
E_name varchar(30) NOT NULL,
NID varchar(30) NOT NULL,
sex varchar(40) NOT NULL,
history varchar(30) NOT NULL,
salary varchar(10) NOT NULL,
cid int NOT NULL,
FOREIGN KEY (cid) REFERENCES Employee_Contact_No(CID),
FOREIGN KEY (cid) REFERENCES Employee_email(Email_ID),
PRIMARY KEY (EID)
);

接待台

CREATE TABLE Receptionist(
r_id varchar(8) NOT NULL,
Emp_ID varchar(8) NOT NULL,
PRIMARY KEY (r_id),
FOREIGN KEY (Emp_ID) REFERENCES Employee(EID),
FOREIGN KEY (Emp_ID) REFERENCES Record(EID)
);

还有接待员的记录

CREATE TABLE Record(
record_no varchar(8) NOT NULL,
EID VARCHAR(8) Not Null,
patient_id varchar(15) NOT NULL,
discription varchar(30) NOT NULL,
appointment varchar(40) NOT NULL,
PRIMARY KEY (record_no)
);

1 个答案:

答案 0 :(得分:1)

可以使单个字段引用多个表,但是我想不出一个好主意的方案。这将要求两个表具有相同的id值,并且(至少暗示)这​​些id值必须进行有意义的协调。

从示例的外观来看,很可能您需要诸如Employee_Contact_No和Employee_email之类的表来引用Employee表。