[英]In an ERD, can a foreign key of a table refer to the primary key of the table on other the side of of an intermediate table without a new relation
想象一个 ERD,它有一个Employees (employee_id 作为主键)、 Tasks (employee_id、project_id 作为复合主键和外键)、 Projects (project_id 作为主键)表。 Tasks是Projects和Employees的中间表。
员工与任务有关系,任务与员工和项目有关系,项目与任务有关系。
现在,想象一下,如果不在 Projects 和 Employees 之间绘制额外的关系,我会在 Projects 中放置一个名为 e_id 的外键,它引用 Employees 的 employee_id。
我是否可以在不绘制额外关系的情况下这样做,我不这么认为。 我的意思是它们通过中间表连接,但我认为在 ERD 图中这样做是不合法的,这真的让我想到了我的问题子问题:
在 ERD 图中,如果这两个表具有绘制关系(我的意思是从一个表到另一个表绘制的一条线没有首先通过中间表停止)
我真的希望我的问题很清楚
祝你有美好的一天!
想象一个 ERD,它有一张
Employees
表(employee_id
作为主键)、Tasks
(employee_id
、project_id
作为复合主键和外键)、项目表(project_id
作为主键)。Tasks
是Projects
和Employees
的中间表。
Employees
与Tasks
有关系。Tasks
与Employees
和Projects
有关系Projects
与Tasks
有关系。
你是说像这样?
现在,想象一下,如果不在
Projects
和Employees
之间绘制额外的关系,我会在Projects
中放置一个名为e_id
的外键,它引用Employees
的employee_id
。我可以在不建立额外关系的情况下这样做吗?
为时已晚:您已经定义了这种新关系:认为 ER“关系”是FOREIGN KEY
约束,反之亦然。
将外键从Projects.e_id
添加到Employees_employee_id
的行为也意味着您要在 Project 和 Employee 实体之间添加新关系。
...像这样:
我不这么认为。 我的意思是它们通过中间表连接,但我认为在 ERD 图中这样做是不合法的,这真的让我想到了我的问题子问题
Tasks
表是它自己的实体(尽管Tasks
表还没有任何数据属性/plain-ol-data-columns。此外,它被称为“ Tasks
”(名词)这一事实也强烈暗示它是它自己的实体。在 ERD 图中,如果这两个表具有绘制关系(我的意思是从一个表到另一个表绘制的一条线没有首先通过中间表停止)
“ERD图”? 我一定要向裁员部举报你!
重复我之前的观点:ER 图中的“绘制关系”或“绘制线”表示这两个表之间的外键约束。 在一张纸上画一条线不是实现FOREIGN KEY
约束的先决条件。
(此外,外键还可以引用辅助键(又名UNIQUE KEY
),而不仅仅是PRIMARY KEY
约束,ofc)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.