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

标签 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)
);

最佳答案

可以使一个字段引用多个表,但我想不出一个好主意的场景;它需要两个表具有相同的 id 值,并且(至少暗示)这​​些 id 值是有意义的协调。

从您的示例来看,您很可能需要像 Employee_Contact_No 和 Employee_email 这样的表来引用 Employee 表。

关于mysql - 单个属性用作多个表的外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52336054/

相关文章:

mysql形成子数组(数组聚合)并返回

c# - 提供程序无法确定 Access 数据库的对象值异常

java - 我可以在 JDBC 连接器中使用数据库 IP 地址而不是主机名吗?

ruby - 使用 Ruby XMLRPC 使用开发人员 key 查找 UPC 数据库

javascript - twitter 中 Sequelize 中的多对多 self 引用,如 web-app

mysql2 gem 在安装过程中挂起

php - 正则表达式帮助...php检查条目格式

mysql - 使用两种格式数据更新 mysql char 数据类型

mysql - 多列范围

php - javascript代码中的数据插入到mysql数据库