我想将 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)
);
最佳答案
您可以使一个字段引用多个表,但我想不出一个好主意的场景;它需要两个表具有相同的 id 值,并且(至少暗示)这些 id 值是有意义的协调。
从您的示例来看,您很可能需要像 Employee_Contact_No 和 Employee_email 这样的表来引用 Employee 表。
关于mysql - 单个属性用作多个表的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52336054/