我懷疑這是其中一個問題,其中不會有一個確定的答案。但是我希望能夠對通常被認爲是最佳實踐的東西有所瞭解,但大多數情況下都是如此。所以,預先感謝那些重視此事的人。代表這些數據的模式會更好嗎?
我有兩種類型的文件夾用於存儲記錄。個人文件夾和團隊文件夾。
有兩種方法,我可以在數據庫中表示這個...
選項1:兩個獨立的和無關的文件夾表。
personalFolders(id, userId, title)
teamFolders(id, teamId, title)
records(id, folderId, folderType, title)
選項2:有兩個常見的文件夾表連接的表
folders(id, title)
personalFolders(folderId->folders.id, userId)
teamFolders(folderId->folders.id, teamId)
records(id, folderId->folders.id, title)
我的問題是:一般情況下,什麼樣的模式將被認爲是最佳做法?
(我的直覺告訴我,去與選項2,因爲這樣我可以保持外鍵約束在表的記錄,但是,在那裏它可能是更好的去選擇1的情況呢?)
個人文件夾和團隊文件夾可以具有相同的標題嗎?更一般的問題是:什麼是文件夾或每種不同類型文件夾的自然鍵? –
@rd_nielson - 是的,他們可以擁有相同的標題。 ID是主鍵。 – trav
因此,在您的選項2中,您是否會在標題上創建唯一索引,並且具有相同標題的個人文件夾和團隊文件夾使用相同的ID,還是允許兩個具有相同標題的不同ID?如果是後者,您是否計劃編寫觸發器以確保個人文件夾和團隊文件夾不都指向相同的ID?相關的,除了標題以外是否還有個人或團隊文件夾的其他屬性?後者是 –