我正在創建一個數據庫,它是一個資產註冊表。每臺計算機都有一個內部編號,屬於一個部門,某些軟件需要鏈接到它,以及優先級是什麼。與數據庫設計苦苦掙扎
例如:
內部版本號:12345
地點:辦公室
的Adobe - Dreamweaver中(優先級高)
的Adobe - Acrobat Reader軟件(優先級低)
的Adobe - 衝擊波(優先級中等)
有大約30個獨立的建築物和約30個部門。
我想不出一個理想的方式來做到這一點?每棟建築物是否應有獨立的桌子?幫幫我!
我正在創建一個數據庫,它是一個資產註冊表。每臺計算機都有一個內部編號,屬於一個部門,某些軟件需要鏈接到它,以及優先級是什麼。與數據庫設計苦苦掙扎
例如:
內部版本號:12345
地點:辦公室
的Adobe - Dreamweaver中(優先級高)
的Adobe - Acrobat Reader軟件(優先級低)
的Adobe - 衝擊波(優先級中等)
有大約30個獨立的建築物和約30個部門。
我想不出一個理想的方式來做到這一點?每棟建築物是否應有獨立的桌子?幫幫我!
一種方法,以表設計以這種方式工作:
定義你的實體(是你的工作是什麼概念)?
定義KBM(Key Based Model) - 它們之間的關係是什麼?你需要什麼主鍵和外鍵來將表連接在一起?
定義您FAM(Fully Attributed Model) - 將屬性(列)添加到描述每個實體但不參與關係的表中。
聽起來像你的實體是構建,部門和資產(或軟件)。從那裏開始。確定需要添加哪些鍵以將它們鏈接在一起,然後添加其餘屬性(例如優先級)。
那麼,我們就需要幾個不同的實體/表:
**Department**
BuildNumber/Id - Primary Key
Name
**Computer**
Id - Primary Key
BuildNumber - FK to department.buildnumber
**Software**
Id - Primary Key
Name
**ComputerSoftware**
Id - Primary Key
ComputerId - FK to computer.id
SoftwareId - FK to software.id
Priority
通過這種方式,你可以有ID = 1具有計算機buildnumber 12345 Buildnumber 12345只屬於一個部門, 「辦公室」。
在軟件表中,您將分別使用Dreamweaver,Reader和Shockwave,其ID分別爲1,2和3。
表「計算機軟件」定義哪些軟件在特定的計算機上。假設我們在計算機1上安裝了Dreamweaver和Shockware,兩者的優先級均爲「高」,那麼ComputerSoftware表中就會有兩行代表這一點。 這個數據應該是這樣的:
Id = 1
ComputerId = 1
SoftwareId = 1
Priority = "high"
和
Id = 2
ComputerId = 1
SoftwareId = 3
Priority = "high"
希望這有助於約翰·吳的回答是偉大的,但我想給一個非常簡單的例子太多。
你的問題是非常高的水平,不是它不應該有單獨的表,請分享您的架構,關係等更多細節。 –