動的自己参照多対多関係を構築する方法はありますか?動的自己参照多対多関係
私は克服できないという問題があります。
私はテーブルを持っている:
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する手作りの多対多の関係テーブルの
- ロットの列の
- とてもたくさんを思い付いたいくつかの方法があります。設計上のようなものではないかもしれませんが、それは正しい方法であり、私のデータベースは最初から間違っていたかもしれません。
ご意見ありがとうございます。あなたが正しいかもしれないと思います。 "最終的な使用法は何ですか、データにどのような質問をしますか?"答えはすべてです。私はその金額や将来どのようなタイプの質問が出るのか分かりません。だから私はできるだけダイナミックにする必要がある。 –
非常に一般的なオプションは、relationship_typeを持つproduct_relationshipテーブルのようなものですが、多くの関係で1つのテーブルを使用することは、リレーショナルデータベースの動作とは対照的であり、問題を蓄積するだけです。各テーブル( "オブジェクト"またはオブジェクト間の関係)の明確な目的は、物事を行う方法です。 –