我想爲學校管理系統創建一個數據庫。該數據庫有兩個表包含共享領域,如學生和教師。 例如,學生表具有字段(ID,姓名,電話,班級),而教師表格具有字段(ID,姓名,電話,部門)。維護數據庫中的表之間共享字段的最佳方式是什麼?
是更好地做:一臺稱爲人具有字段(ID,姓名,電話),學生表有字段(ID,爲person_id,類),以及教師表有字段(ID,爲person_id,部門)。
的兩種方法哪個好?
我想爲學校管理系統創建一個數據庫。該數據庫有兩個表包含共享領域,如學生和教師。 例如,學生表具有字段(ID,姓名,電話,班級),而教師表格具有字段(ID,姓名,電話,部門)。維護數據庫中的表之間共享字段的最佳方式是什麼?
是更好地做:一臺稱爲人具有字段(ID,姓名,電話),學生表有字段(ID,爲person_id,類),以及教師表有字段(ID,爲person_id,部門)。
的兩種方法哪個好?
直接回答這個問題可能是基於意見的。設計數據庫通常沒有最好的策略。
理論例如:如果你可能要考慮一下性能數據量大的:什麼以及如何搜索和連接。
如果您主要搜索Students
和Teachers
您可能不會創建Person
表,您可以輕鬆搜索它們。然後,如果你想搜索從DB你需要做兩個查詢所有Person
S和那些之間與兩者共同類型的Person
字段UNION
。
如果您還搜索Person
S比頻繁,那麼你可能創建Person
表和實施Teacher
和Student
有外鍵Person
。然後,當搜索最後提到的兩個時,您需要將JOIN
設置爲Person
。
在現實生活中,我不知道,如果在這種情況下使用真的是有很大的區別。更重要的是你選擇了一些策略,並在未來的決策中遵循它來保持清晰。
但是有可能出現情況,即需要還是改變選擇的策略。所以在理論上。
相關問題here