0

有一个名为Department的表,它显示了大学的各个部门。
而且有一个名为Branch表,其示出了各个分支(如电的,计算机科学,机械,汽车,法律,文学等)表之间的基数和关系

条件:

  1. Department可以有任意数量Branch es。
  2. A Branch可以关联到单个Department

这意味着DepartmentBranch之间的基数是“一对多”。

现在问题是,在这种情况下,如果我将dept_id(表的属性:Department)作为主键。我如何能够关联多个branch_id(表的一个属性:Branch),因为如果我这样做了,我可能违反了dept_id本身的主要条件。

如何处理基数和使外键都齐头并进?

回答

1

添加外键dept_idBranch查询Department.dept_id

由于dept_id是在Department唯一的,Branch每一行可因此明显地连接到恰好一个行中Department,并且有可在Branch是包含相同dept_id多个行。

因此,两者之间会存在一对多的关系。


描绘出许多一对多的关系,你需要创建一个包含第三个表:

  • 外键dept_id引用Department.dept_id
  • 外键branch_id引用Branch.branch_id
+0

它是否也满足“一对多”的基数? –

+0

是的。用解释编辑。说两者之间存在一对多关系,两者之间的基数是一对多意味着相同。 – Dukeling

+0

如何描述SQL代码中的“多对多”场景? –