首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >数据库设计:用于自引用FK的many2many关系

数据库设计:用于自引用FK的many2many关系
EN

Stack Overflow用户
提问于 2015-01-14 13:37:30
回答 1查看 121关注 0票数 0

我的问题可以用经典的“员工”自引用表演示,其中manager_id是与employee_id (PK)相关的FK。另一个表是“授权”。

如果授权只与经理相关,而与非经理无关呢?假设我创建了一个包含“管理器授权”的连接表,即使它不是唯一的,这个表能连接到employees.manager_id吗?

或者我必须将管理器分离到另一个表,即使它们具有与非经理完全相同的属性?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-01-14 15:26:06

看看这个结构员工结构。它管理一个复杂的情况(经理负责一个或多个部门),记录是历史的(from_date,to_date)。

尝试按以下方式修改此结构:

  • 部门授权
  • dept_emp成为关联表auth_emp
  • 删除dept_manager

FK必须始终引用PK,因此不可能通过auth_emp将manager_id连接到employee (请考虑为空引用)。

是否将经理拆分到另一个表中的决定取决于您的需求(考虑一下:员工何时成为经理?当至少有另一名雇员提到他时,员工就是经理。

如果要强制在employee_id中注册的auth_emp引用经理的约束,则可以在employee表上使用触发器。显然,触发逻辑取决于您的需求。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/27944283

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档