我有涉及實體的多對多關係:部門和範圍。數據庫設計問題
1)部門。 (進口,出口)
2)範圍。 (Nationwide,International)
1部門可以與許多不同的範圍相關。一個範圍涉及多個部門。
到目前爲止,我的多對多的關係表會是這樣的:
DepartmentID的(外鍵)
ScopeId。 (外鍵)
每個部門/範圍的關係將有一個整體的配置,包括文件類型和批號等
(所以對:
部門1/1的範圍/文檔類型1
部門1 /範圍1 /文檔類型2
然後爲每個文檔類型會有一些不同的代碼:
部門1 /範圍1 /文檔類型1/COD ë1
部門1 /範圍1 /文檔類型1 /碼2
部門1 /範圍1 /文檔類型2 /代碼1
部門1 /範圍1 /文檔類型2 /碼2
所以我在具有多對多的關係表(部/範圍)思想爲:
ID(自動增加)(主鍵)
DepartmentID的
ScopeId。
這個「Id」將是另一個表中的外鍵。
這樣好嗎我在做什麼或者我是否違反了一些最佳實踐規則?
感謝
更新1
我發現,我將有許多不同的多對多關係的表。
1)定義範圍相關的各部門
標識
DepartmentID的
ScopeId涉及每個部門內的每個範圍
2)文件類型。
ID(主鍵,autoincrementable)
DepartmentScopeId(外鍵,1)
DocumentTypeId(外鍵,文檔類型)。
3)與每個文檔類型相關的代碼,屬於某個部門的範圍。
Id(主鍵,自動增量)。
CodeName(nvarchar(50))
DocumentTypeDepartmentScopeId(外鍵爲2))。
我不太確定如果我是過於複雜的事情,或者如果這是數據庫世界中的正常模式。
我這樣做後,我想我能創建一個視圖,這將幫助我在訪問數據,例如:返回所有代碼,每個文件類型,每個範圍,每部」如果我能
將是巨大的關於這是否會是去了解這個正確的方式獲得一些建議。
感謝
「數據庫設計」並不意味着「在每張桌子上放置一個自動增量的ID號碼」。如果你這樣做,你幾乎可以肯定不會執行* real *限制。例如,在部門範圍的表中,必須聲明一對列{departmentid,scopeid}爲「PRIMARY KEY」或「UNIQUE」。 – 2011-03-20 13:16:10