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代碼中的「多對多」場景? –