Mysql

主表或補充表中的外鍵?

  • July 26, 2018

我有兩個具有一對一關係的表 b/w 學生和 Student_detail(一種補充表)表

設計一

Student
student_id
name
....

學生詳細資訊

student_detail_id
 student_id(foreign key to student_id in student table)
 ...

設計二

Student
student_id
name
student_detail_id (foreign key to student_detail_id in Student_detail table)
....

學生詳細資訊

student_detail_id
  ...

我的問題是哪種方法更好?從設計的角度來看,將外鍵保留在主表(在這種情況下為學生表)還是在補充表(學生詳細表)中更好?

根據我的理解,方法 2 更好,因為如果我們添加更多補充表,我們不必修改主表?

建議將先前的評論發佈為“答案”。這裡是。

即使是合理的一對一,我仍然會將“主”表視為父表,而將“詳細資訊”視為潛在的多個子表之一。因此,FK 將進入“詳細資訊”表。更恰當地命名為“additional_student_details”。

在閱讀了Google上的幾篇文章並在這裡發表評論後,我相信理想情況下不需要補充表。但是是的,如果有任何 FK 應該像一對多關係那樣深入細節/補充。此外,我們不必修改主表,以防將來出現任何新的詳細資訊表

引用自:https://dba.stackexchange.com/questions/213117