我正在與製造業的客戶合作,他們的產品是同一批零件的配置。我正在創建一個包含所有有效產品及其物料清單的數據庫。在決定物料清單計劃實施時,我需要幫助。物料清單:一張桌子,或者每個子級別的表格?
顯而易見的解決方案是用接線表許多一對多的關係:
Table 1: Products
Table 2: Parts
Junction Table: products, parts, part quantities
然而,也有我的客戶的產品多層次的;
-Assembly
-Sub-Assembly
-Component
-Part
並允許來自較低級別的項目與任何較高級別項目相關聯;
Assembly |Sub-assembly
Assembly |Component
Assembly |Part
Sub-Assembly |Component
Sub-Assembly |Part
Component |Part
我懷疑客戶會在未來添加新產品系列時添加更多關卡。
糾正我,如果我錯了,但我相信上述關係表將要求越來越多的聯結表和查詢整數序列(0 + 1 + 1 + 2 + 3 ...)來顯示和導出整個比爾可能最終影響性能的材料。
有人建議把一切都在一個表:
Table 1: Assemblies, sub-assemblies, components, parts, etc...
Junction table: Children and Parents
這隻需要一個連接表中創建許多一對多的關係無限的水平。我不知道我是否相信這個解決方案,但除了意外地將一個項目作爲自己的父項並創建一個無限循環並且聽起來雜亂無章以外,我無法想到任何其他問題。
我缺乏經驗來確定這兩種模式中的哪一種或兩種都不適合我的客戶。我正在MS Access中繪製這些模型,但如果有必要,我願意將此項目移至更強大的平臺。任何輸入讚賞。謝謝。
-M
該模式可在行創造了很多的浪費空間屬性補充說,只有對應於一個級別。它也會使驗證有問題:何時可以將屬性設置爲空等。 – nicomp
如果屬性僅適用於特定級別,則它不屬於該表格。這些將是該部分與其父項之間關係的屬性。作爲關係一部分的ID的屬性可以屬於爲該層次的分支構建的任何公共表。也許這個層次結構有三個組件。根(部分),分支(純粹用於像「組件」的關係的ID)和葉子(部分)。或者是反轉/顛倒版本,取決於OP的意義。所以4桌。 – JNevill
我認爲您的解決方案的組合將爲我工作。一個包含所有部件的表格,一個包含部件類型(組件,組件等)的表格,一個部件/部件類型的連接表格以及一個部件/父部件的連接表格。樹形結構不會在part/parent part連接表中被推斷出來,而不需要指出它是什麼樣的關係(例如,彙編到子彙編)? – mateohao