有 3 个表,即 FN、ADM、USR 代表一个功能,该功能的管理员,参加该功能的用户。Admin 将是一个用户,ADM 必须从 USR 继承。
FN_I,USR_I 应该是 FN 和 USR 的主键。(这被许多其他表引用)
ADMN 是新添加的
我需要实现以下约束。
1.一个功能只能有一个管理员。(1-1)
2.一个管理员只能管理一个功能。(1-0/1)
我尝试通过将FN_ADM_I设置为FN_I的外键来实现1。
有人可以帮助我解决可以同时满足这两个要求的约束/关系吗?
有 3 个表,即 FN、ADM、USR 代表一个功能,该功能的管理员,参加该功能的用户。Admin 将是一个用户,ADM 必须从 USR 继承。
FN_I,USR_I 应该是 FN 和 USR 的主键。(这被许多其他表引用)
ADMN 是新添加的
我需要实现以下约束。
1.一个功能只能有一个管理员。(1-1)
2.一个管理员只能管理一个功能。(1-0/1)
我尝试通过将FN_ADM_I设置为FN_I的外键来实现1。
有人可以帮助我解决可以同时满足这两个要求的约束/关系吗?
您可能想要创建一个链接表:
FN_ADMIN_REL
FN_I, -- PK
ADMIN_I --PK
其中两个字段都是具有唯一约束的主键:
ALTER TABLE FN_ADMIN_REL
ADD CONSTRAINT uc_Func_Admin UNIQUE (FN_I, ADMIN_I)
我认为您在这里混淆了术语。我认为 1-1(一对一)的关系并不完全是你想象的那样。
无论如何,如果我正确理解了您的问题(很可能并非如此),这就是您要做的。
这有意义吗?