SQL Server 2008 - 是否可以将一个表中的主键与另一个表中的广义字段相关联?

时间:2012-12-20 14:23:30

标签: database sql-server-2008 tsql class-table-inheritance

我目前正在从事一项工作,我在尝试关联两个表时遇到问题,其中一个表是由于泛化而导致的子类。

表A有一个staffID的主键,我想将它与一个通用表中的外键相关联(表B)。表B的超类(表C)具有staffID字段,因此泛化应该将表C从表C带到表B.

然而,在使用图表视图设置FK关系时,我在查看时 下拉字段,我只能看到表B中的属性,没有超类(表C)属性,因此不能看到staffID。

为了给出更多的情境,有两种类型的工作人员,一种可以在泛化的所有表中创建数据,因此通过staffID直接链接到超类,但是其他类型的工作人员只能添加数据到其中一个子类。

               Super Class C
                 (staffID)

Sub Class D                     Sub Class B(FK) ----------- table A (PK)
                                                              (staffID)

提前致谢

1 个答案:

答案 0 :(得分:0)

我不确定我理解你的问题。但是为了将外键引用 B 设置为 C,列C.staffID必须是主键,或者它必须具有UNIQUE约束。

This SO answer可能会为您提供一些有用的指导。