Normalization
我的數據庫設計是否違反了任何 NF 規則?
我是創建數據庫的新手……我需要為我的招聘網路應用程序創建它。
我的申請需要安排申請人的篩選、考試和麵試,並將結果保存在數據庫中。
我的數據庫架構如下:
我的問題是我包括
applicant_id
在其他表…例如考試,面試,考試類型。我是否違反了任何規範化規則?如果我這樣做,你有什麼建議來改進我的設計?
除了標準化之外,幾乎沒有什麼需要考慮的。例如,您有一個 AGE 列。你打算每年更新嗎?你怎麼知道什麼時候這樣做?多年的經驗也是如此。
對於每個申請人,有些列可能會有多個值:學校、課程等。
您可能還想檢查您對這些關係的選擇性。現在申請者必須有一個相關的考試,但一個考試不一定有一個與之相關的申請者。我猜這是倒退到現實生活中的事情如何運作。您對所有其他關係都有類似的問題。
如果您在創建關係後讀出關係,這會有所幫助。
我想您實際上需要在您的申請人表和其他主表(主要是篩选和考試)之間建立多對多的關係。如果您的篩選包含多個申請人(其他表格的情況類似)。
我會看到與單個候選人的面試,但與不止一個候選人的考試或篩選會議。在這種情況下,您將需要一個將篩選與申請人連結的關係表。
請參閱此處了解多對多關係。