我有一個關係數據庫Witness
,PoliceOfficer
Suspect
,和許多其他類人關係。通常同一個人可能會形成多種關係,因爲在某些情況下,警察可能會成爲犯罪嫌疑人。將另一個關係Person
存儲所有人的相關數據,並指出所有人類關係中的人物對象是否有意義?具有多人關係的數據庫設計
回答
我完全同意@ Guranjan的評論。
還要考慮一個人是否可以擁有同一個角色的倍數,以及在什麼情況下。您可能有person
誰是Suspect
多於一個case
。所以,每個case
可以有很多嫌疑人,證人和官員,並且每個人都指向一個獨特的人。
因此,表是:
case
case-id
crime-description
date
time
etc
case-person
case-id
person-id
type (witness, suspect, officer)
person
person-id
name
dob
address
etc
不知道你的使用情況,但它將使意義使用了幾桌它型號:Person
,Role
將是維表 - Person
含您需要儲存個人信息(姓名,地址,dob等)的詳細信息Role
,其中包含所有可能的角色信息(見證人,警察,嫌疑人等)。
你需要一個事實表,以及爲AA特別Scenario
例如連接這兩個這樣:
人1 - 場景1 - 是警務人員
人2 - 情景1 - 是一個證人
人3 - 在方案2 - 是一個可疑
人1 - 在場景2 - 是見證
2個人 - 在方案2 - 是一個見證
的Scenario
表將包含人物和角色鍵
我喜歡爲所有角色建立關係的想法。但是對於某些角色特有的屬性呢?我在哪裏可以儲存警察等級? – Jamgreen 2015-03-25 16:22:12
你應該爲每個警官級別排名擁有不同的角色。通過這種方式,人員1可以在情景1中擔任中士(角色1),在情景2中擔任督察(角色2) – econnormist 2015-03-27 15:14:44
- 1. 具有多個關係的數據庫設計表
- 2. 關係數據庫設計
- 3. 爲具有多個可選列和依賴關係的表設計數據庫
- 4. 數據庫設計採用多很多一對多的關係
- 5. 關係數據庫設計(MySQL的)
- 6. 關係數據庫設計(MySQL的)
- 7. 數據庫架構設計的關係
- 8. 數據庫表關係的設計
- 9. 有關多個一對多關係和外鍵的數據庫設計問題
- 10. 如何區分設計數據庫時的多對多關係?
- 11. 多對多關係的數據庫設計
- 12. 用戶,UserRole的數據庫設計 - 多對多關係
- 13. 如何設計對象數據庫中的多對多關係?
- 14. 數據庫設計:責令很多一對多的關係
- 15. 數據庫設計中的多對多關係
- 16. 子列或多對多關係的數據庫設計
- 17. 關係數據庫設計 - 「循環」圖
- 18. 關係數據庫設計週期
- 19. 1-M關係數據庫設計
- 20. MySQL數據庫設計 - 關係表
- 21. 數據庫設計1對1關係
- 22. MySQL關係數據庫設計
- 23. 關係數據庫設計用MySQL,
- 24. 數據庫設計:OR關係
- 25. 有很多關係設計
- 26. 數據庫設計:遞歸多對多關係
- 27. 關係數據庫設計(正火許多一對多映射)
- 28. 關係數據庫設計在beginnig處具有未知數量的屬性
- 29. 設計具有多個變量的工作計劃數據庫?
- 30. 數據庫中的一對多關係 - 設計概念
這肯定會幫助'normalize'您的數據。在所有其他相關關係中,您可以將所有像人物一樣的共同屬性放入'Person'關係中,並使用'Person'的'PK'作爲'FK'來訪問它們。 – 2015-03-24 22:00:25