Database-Design

學校數據庫中的關係

  • January 16, 2013

我正在為學校應用程序設計數據庫。學生是數據庫中的主要實體。學生與家長和監護人有關係。

我對在哪裡儲存引用感到困惑。學生表也將具有來自父母和監護人表的外鍵,反之亦然。

更新:需要儲存學生目前的數據,如課程/批次/卷號等,這些數據會不斷變化。為此,我正在創建一個新表 student_current 來儲存目前數據,其中包含從 student 到 student_current 表的一對多關係。在任何時候,我都需要創建一個與 student_current 表的連接來獲取最新的 student_current 記錄。為了提高性能,我將 student_current 表的主鍵作為外鍵儲存在 student 表中,然後對此進行簡單的連接以獲取數據。這種做法對嗎??

還希望您能幫助建議如何儲存學生數據的修訂。

目前架構如下:

student { id, student_current_id, name .... }
student_current { id, student_id, course .... }

請幫忙。

您可能需要一個中間表來儲存這種關係,因為學生可能有多個父母/監護人(母親和父親),並且父母/監護人有可能不止一個學生。

學生
-------
ID


高迪安
--------
ID

student_gaurdian
----------------
學生卡
gaurdian_id

該表student_gaurdian可以儲存學生和gaurdians之間的所有關係,並允許多對多關係。


回复:你的新問題

讓兩張桌子相互連接對我來說看起來有點奇怪,但如果你真的遇到性能問題並且這可以緩解它們,那就沒關係了。

學生在家長/監護人表中應該是 FK,因為在學校裡,沒有學生就不能有家長或監護人。

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