【发布时间】:2011-09-13 12:21:01
【问题描述】:
我有 3 张桌子。一个基表,称它为表A,以及两个引用表A的表,称它们为表X和表Y。X和Y都有一个引用表A的外键约束。X和Y的外键也是他们自己的主键。
我想知道是否可以添加一个约束,只允许其中一个表包含引用表 A 的记录。因此,如果 X 有一个引用 A 的记录,那么 Y 不能有一个如果 Y 有一条引用 A 的记录,那么 X 不能有一条。
这可能吗?
谢谢,
【问题讨论】:
-
我很好奇您的用例。你的结构有些有趣。您有 3 个使用相同键值的主键。
-
是的,它们是三个用于存储用户帐户的表。有两种类型的帐户。因此,有一个基表包含两种帐户类型共有的信息,然后是每个帐户类型的表,其中包含特定于该帐户类型的信息。因此,每个表的 PK 都是 UserID,因为我认为这会使事情变得连贯,并使通过 UserID 访问记录变得容易。
标签: sql sql-server sql-server-2008 constraints