2016-11-09 22 views
1

動的自己参照多対多関係を構築する方法はありますか?動的自己参照多対多関係

私は克服できないという問題があります。

私はテーブルを持っている:

Types: 
id 
name 

Products: 
id 
name 
type_id 

product_products 
parent_id 
child_id 

は、我々は製品のテーブルにいくつかの製品を持っていると仮定しましょう。そのうちのいくつかは、次のとおりです。
(名前は関係ありません)

CB1234 - products.type_id -> cardboard 
CBB999 - products.type_id -> cardboardbox 
CBP321 - products.type_id -> paper 

TSH123 - products.type_id -> tshirt 
FAB321 - products.type_id -> fabric 
THR321 - products.type_id -> thread 

今、私は製品の段ボールや紙の種類で構成されcardboardboxを持っていることproduct_product関係をお伝えしたいと思います。 cardboardbox-cardboardとcardboardbox-paperの関係では、cardboardbox製品を作るためにどれくらいの割合で製品を使用するかを定義したいと考えています(80/20、無関係)。

商品ごとに異なるケースがあります。今、私はtshirt-fabricとtshirt-threadの関係を定義したいが、一貫性の代わりに、この製品のファブリックとスレッドのコストを定義したい。

製品と製品のパラメータの数は固定されていません。 500種類の製品があり、それらの間には異なる関係がある可能性があります。この問題の良い慣行は何ですか?私はどちらの場合も、私はドンものがあるテーブルに

をproduct_productする手作りの多対多の関係テーブルの

  1. ロットの列の
  2. とてもたくさんを思い付いたいくつかの方法があります。設計上のようなものではないかもしれませんが、それは正しい方法であり、私のデータベースは最初から間違っていたかもしれません。

答えて

0

1)移動するための方法だろう - 本当にあなたが

product_product_consistency product_product_costを保存したいすべてのものを働いた後(これは代わりから算出した後、product_costとして表すことができる「たくさん」が存在することになるかわかりませんproduct_product_consistencyなど)

最後の使用方法は何ですか。データにどのような質問をしますか?

+0

ご意見ありがとうございます。あなたが正しいかもしれないと思います。 "最終的な使用法は何ですか、データにどのような質問をしますか?"答えはすべてです。私はその金額や将来どのようなタイプの質問が出るのか分かりません。だから私はできるだけダイナミックにする必要がある。 –

+0

非常に一般的なオプションは、relationship_typeを持つproduct_relationshipテーブルのようなものですが、多くの関係で1つのテーブルを使用することは、リレーショナルデータベースの動作とは対照的であり、問​​題を蓄積するだけです。各テーブル( "オブジェクト"またはオブジェクト間の関係)の明確な目的は、物事を行う方法です。 –

関連する問題