2016-05-29 5 views
0

ユーザーがフィールドをオンまたはオフにできるパターンを探しています。 CARテーブルをお持ちの場合、車にオプション(CDプレーヤー、革シートなど)をリンクする多対多のリンクテーブルCAR_OPTIONがあります。データベースデザイン:ユーザーのフィールドをオンまたはオフにする

私は、ユーザが車のために望むこれらの潜在的なオプションを選択し、そのデータを保存できるようにしたいと考えています。これにより、オン/オフの可能性のあるオプションを確認できます。私は私の頭の中でこれを束にしてきました。そして、私のソリューションのすべては、彼らが車輪を再発明しているように感じています。私が持っている唯一の半まともな解決策は、私は、UIコード

CAR_OPTIONにデルタのオーバーレイう CAR_OPTION_ORDERのようなものをも戻って、そのユーザー ORDERにバインドするidフィールドを持つ別の多対多のテーブルを作成するもの

これが最善の選択ですか、それともこのシナリオの他の一般的なプラクティスやパターンがありますか?私のソリューションは、同じ/類似のデータが複数回格納されているような感じです。

答えて

0

あなたは私の意見では最良の選択肢があります。これは連想エンティティと呼ばれています。私は一度、主キーとして2つの外部キーを使用するのではなく、識別主キー/クラスタード・インデックスを追加することを少し前に読んでいます。それは私のSOPであり、結合は非常にうまくいく。

報告/履歴分析側では、負荷が重い場合は別のデザインを使用することがあります。

+0

それでは大丈夫です。その言葉をありがとう、それは通常私のための険しい戦いであることを見つける。 –

+1

私はこれが最高のデザインであることに同意します。ユーザー、車、オプション間の3方向の交差テーブルです。しかし、別のIDキーを作成することには同意しません。単に目的がありません。ユーザは、ユーザおよび/またはカーおよび/または関心のあるオプションを知っているデータベースに問い合わせる。つまり、ユーザUと車Cの場合、オプションOは有効になっていますか?ユーザーUとCの場合、どのオプションが有効になっていますか?または分析:Car Cで最も人気のあるオプションはどれですか? これまで、キーの値を使用してデータベースを照会することはありません。それは、せいぜい、余計なことです。 – TommCatt

関連する問題