2017-02-13 65 views
0

我試圖做的是以下幾點:假設你有一個3步生產工藝:的MySQL:在另一個錶鏈接在一個表的同一列的兩個條目列

ore ----> ingot -----> I-Beam 

當然,每一個I-Beam都是由一個以上的錠製成的。如果我有一張錠子和一個I-Beams桌子,它可以由兩個,三個(一直到比方說6)

我該如何去做這種關係?

我是比較新的關係數據庫管理系統和MySQL,所以我的道歉提前如果問題是錯誤的,不清晰,或沒有任何意義

+0

您試圖創建的概念是材料清單(BOM),它是一種製造過程,它將原材料和成品製成成品。因爲鑄錠到成品是多對多的,你需要使用一個接合表來解決這種關係,該接合表將包含使得產品(成品)有問題的「材料」,類似於烹飪中的「recipie」。您將列出所需的材料和數量,以製作IBEAM。包含數量和單位的表格(Product_materials)。你甚至可能有多個食譜來製作相同的成品。 – xQbert

+0

@xQbert因此,據我所知,我需要另一個表(使用它自己的主鍵),並且在這個表中我將有兩列(ingotID和ibeamID),並且該表中的條目將是我需要看的跟蹤ibeam回到它的錠? – robotHamster

+0

因爲您可以有多個公式來生成最終產品,所以您需要公式ID。從技術上講,您不必擁有組合鍵,因爲formualID將是唯一的。和ProductID,materialId只能是外鍵。 – xQbert

回答

1
Product_materials table 
FormulaID composite key (though this alone would be unique) 
ProductID composite key 
MaterialID composite key 
Material_QTY 
Material_UOM 
Product_QTY 
Product_UOM  
InstructionID FK to steps to follow for manufacturing etc. 

注意,你可能對多個公式相同的產品和材料組合。暗示有多種方法可以製作具有相同SKU的「IBEAM」。

所以在你的例子:

我們對礦石的materialID一個公式,具體數量和計量單位,我們用它來使產品錠。

然後我們有一個材料錠的公式,我們用它來製作產品ibeam。

+0

謝謝!我認爲複合鍵是我一直在尋找的! – robotHamster

+1

我確實建議閱讀材料清單中使用的字段,因爲如果您在完成這類製造工藝的全部功能後可以參與其中。這裏有一個例子:http://stackoverflow.com/questions/17651424/bill-of-materials-database-model – xQbert

相關問題