2017-02-13 15 views
0

私は何をしようとしていることは以下の通りです:もちろんのMySQL:別のテーブルに同じ列の2つのエントリに一つのテーブルの列をリンク

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

:あなたは3段階の製造プロセスがあるとしすべてのIビームは、複数のインゴットから作られています。インゴットのテーブルとIビームのテーブルを持っているなら、それは2つ、3つ(すべての方法で6と言いましょう)で作ることができます

どうすればその関係を作ることができますか?

私はRDMSとMySQLへの比較的新しいですので、質問は見当違いであれば、私は事前に謝罪ではなく、明確な、または

+0

あなたが作成しようとしているコンセプトは、原材料と成果を完成した製品に取り込む製造プロセスです。部品表(BOM)です。 Finished goodへのインゴットは多対多であるため、調理の「レシピ」に似た、製品を完成させるのに必要な「材料」を含むジャンクション・テーブルを使用してその関係を解決する必要がありますIBEAMを作成するために必要な数量とともに必要な品目を一覧表示します。 QTYとUOMのテーブル(Product_materials)。あなたは同じ完成品を作るために複数のレシピを持っているかもしれません。 – xQbert

+0

@xQbert私が理解しているところでは、別のテーブル(独自のプライマリキー)が必要です。このテーブルでは、2つのカラム(ingotIDとibeamID)があり、そのテーブルのエントリは、イボットをそのインゴットに戻すことを追跡する? – 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」を作る方法が1つ以上あることを知らせる。だからあなたの例では

は:

我々は、特定の数量とUOMで、我々は製品のインゴットを作るために使用OREのmaterialIDのための式を有します。

次に、私たちは特定の数量で製品を製造するために使用する材料インゴット用の配合式を用意しています。

+0

ありがとう!複合キーは私が探していたものだと思います! – robotHamster

+1

この種の製造プロセスが完全に機能している場合は、部品表に使用されているフィールドを読み上げることをお勧めします。ここに1つの例があります:http://stackoverflow.com/questions/17651424/bill-of-materials-database-model – xQbert

関連する問題