我的數據庫中的一些用戶也是從業者。SQL數據庫設計 - 標誌還是新表?
這可以通過任一式表示:
- 在用戶表中的標誌is_practitioner
- 與user_id列
單獨從業表這是我不清楚哪種方法更好。標誌的
優點:
- 更少的表每用戶
- 只有一個ID(因此沒有可能混亂的,並且還沒有混亂,其中id來在其它表中使用)
- 靈活性(I不需要確定字段是否僅僅是從業者)
- 查找從業者的用戶級信息(例如電子郵件地址)的速度優勢
優點:
- 在用戶表中沒有空
- 更清晰,以什麼樣的信息屬於從業人員只有
- 速度優勢尋找從業人員
在我的情況特別,,,從業人員相關信息通常是一對多(如他們可以工作的地點,或他們可以工作的班次等)。如果輪到我需要爲從業者存儲簡單的屬性(即,一對一),我一點也不會感到驚訝。
問題
- 是否還有其他方面的考慮?
- 兩種方法哪一種更好?
謝謝您的回答。關於你的第一段,在任何情況下都不容易分別通過is_consultant標誌或Consultant表進行覆蓋?你爲什麼說WHERE子句更好?爲什麼許多一對多關係的存在使事物傾向於使用單獨的表格? –
對於從業者來說,一面旗幟再次是一個顧問旗幟,您可以繼續爲每個教授類型添加標誌。在這種情況下,一個單獨的文本字段就可以完成同樣的工作。 從業者表格,另外一個諮詢顧問:假設你想找到從業者或顧問的用戶。這將是來自用戶與從業者和顧問的兩個左外連接。可能已經完成了,ProfType In('PRAC','CONS')。 一對多的性質:如果目標字段有其自己的屬性,請使用表格,否則使用字段。簡單的設置使用簡單的設計,複雜的綜合。 –