我正在處理數據庫以保存應召信息計劃的信息。目前,我有一個看起來大約是這樣的結構:SQL數據庫中的計劃應用程序的表結構
Table - Person: (key)ID, LName, FName, Phone, Email
Table - PersonTeam: (from Person)ID, (from Team)ID
Table - Team: (key)ID, TeamName
Table - Calendar: (key dateTime)dt, year, month, day, etc...
Table - Schedule: (from Calendar)dt, (id of Person)OnCall_NY, (id of Person)OnCall_MA, (id of Person)OnCall_CA
我的問題是:隨着附表表,我應該離開它結構爲是,其中DT是一個獨特的密鑰,或者我應該予以重新排列使DT是不唯一的,並且表看起來像這樣:
Table - Schedule: (from Calendar)dt, (from Team)ID, (from Person)ID
,並有每一天多個條目,或將是有意義的只是使用:
Table - Schedule: (from Calendar)dt, (from PersonTeam)KeyID - [make a key ID on each of the person/team pairings]
一個團隊總是會有人打電話,但一個人可以一次呼叫多個團隊(如果他們在多個團隊中)。
如果完全不同的設置會更好地讓我知道!
感謝您的幫助!如果我的問題不清楚,我很抱歉。我學習速度很快,但對於每天使用SQL仍然相當新,所以我想確保在學習時使用最佳實踐,以免我養成不良習慣。
我建議編輯你的問題標題。 – undone
是的,我剛剛做到了。第一個標題令人困惑,我甚至沒有意識到這一點。 –
(請考慮以下的建議,而不是批評。)如果表代表的實體,它往往是似乎最自然的由實體名稱(是否使用單數或複數是稱之爲*高*有爭議的,所以我沒有在這個頭上說什麼),就像'人'一樣。當另一個表本質上是兩個實體之間的多對多關係時,通常使用兩個實體的名稱來調用它。所以,如果你喜歡,可以考慮它是否會爲你工作更好,如果你叫'TeamIndex'表只是'Team'和'Teams'一個,'TeamPerson'(或者,也許,'PersonTeam')。 –