2

在 SQL 中,表中的单个列可以引用多个表吗?

例如,如果我们有表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)

我知道第二个选择会更好,即使第一个是可能的。我只想知道第一种方法可行吗?

4

2 回答 2

5

不,你不能。一种选择是首先将员工/客户概括为“当事人”或“利益相关者”。
IE

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) 

然后 Contact 将引用 Party。

于 2012-07-20T11:59:13.760 回答
3

不,您不能有一个具有引用两个不同表的外键的列。

于 2012-07-20T11:38:49.840 回答