通过sql中的单个列引用多个表

时间:2012-07-20 11:30:29

标签: sql foreign-keys

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

E.g。如果我们有表employee(PK emp_id, name)和customer(PK cust_id, name

我们可以有一个表contact(id引用[employee, customer], number);

或者我们是否一定要制作2张桌子:

contact_custcust_id引用customer, number)和contact_empemp_id引用employee, number

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

2 个答案:

答案 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)

不,你不能拥有一个带有引用两个不同表的外键的列。