我的问题可以用经典的“员工”自引用表演示,其中manager_id是与employee_id (PK)相关的FK。另一个表是“授权”。
如果授权只与经理相关,而与非经理无关呢?假设我创建了一个包含“管理器授权”的连接表,即使它不是唯一的,这个表能连接到employees.manager_id吗?
或者我必须将管理器分离到另一个表,即使它们具有与非经理完全相同的属性?
发布于 2015-01-14 15:26:06
看看这个结构员工结构。它管理一个复杂的情况(经理负责一个或多个部门),记录是历史的(from_date,to_date)。
尝试按以下方式修改此结构:
FK必须始终引用PK,因此不可能通过auth_emp将manager_id连接到employee (请考虑为空引用)。
是否将经理拆分到另一个表中的决定取决于您的需求(考虑一下:员工何时成为经理?当至少有另一名雇员提到他时,员工就是经理。
如果要强制在employee_id中注册的auth_emp引用经理的约束,则可以在employee表上使用触发器。显然,触发逻辑取决于您的需求。
https://stackoverflow.com/questions/27944283
复制相似问题