在SQL中,表中的单个列可以引用多个表吗?
E.g。如果我们有表employee
(PK emp_id, name
)和customer
(PK cust_id, name
)
我们可以有一个表contact
(id引用[employee, customer], number
);
或者我们是否一定要制作2张桌子:
contact_cust
(cust_id
引用customer, number
)和contact_emp
(emp_id
引用employee, number
)
我知道第二种选择会更好,即使第一种选择是可能的。我只想知道第一种方式吗?
答案 0 :(得分:4)
不,你不能。一种选择是首先将员工/客户概括为“党”或“利益相关者” 即。
TABLE: Party(PK Party_Id,
Name)
TABLE: Employeee(PK Emp_Id REFERENCES Party.Party_Id,
Salary)
TABLE: Customer(PK Cust_Id REFERENCES Party.Party_Id,
CreditRating)
然后联系会参考Party。
答案 1 :(得分:3)
不,你不能拥有一个带有引用两个不同表的外键的列。