【发布时间】:2011-05-23 11:03:56
【问题描述】:
有 3 个表,即 FN、ADM、USR,代表一个
功能,该功能的管理员,参加该功能的用户。
管理员将是一个用户,而 ADM 必须从 USR 继承。
FN_I,USR_I 应该是 FN 和 USR 的主键。(这被许多其他表引用)
ADMN 是新添加的
我需要实现以下约束。
1.一个功能只能有一个管理员。(1-1)
2. 一个管理员只能管理一个功能。(1-0/1)
我尝试通过将 FN_ADM_I 设置为 FN_I 的外键来实现 1。
有人可以帮助我解决可以同时满足这两个要求的约束/关系吗?
【问题讨论】:
-
你试过了,但是..发生了什么?你的结果是什么?什么有效,什么无效?
-
只有一个管理员或一个用户(不能同时)管理一个功能?
-
@abatishchev:管理员继承自用户。所以基本上只有一个管理员可以管理一个功能。我提到管理员/用户的原因是我可以灵活地打破继承并将 USR 中的管理员特定字段保留为非管理员用户的 null。
-
第一个要求是通过将 FN_ADM_I 设置为 FN_I 的外键来实现的。如何通过约束实现第二个要求?
-
听起来这是一个背靠背、一对一的关系。
标签: sql sql-server tsql table-relationships