商品には異なるカテゴリがあります。顧客は同じカテゴリーの複数の商品のみを注文することができ、同じカテゴリーで異なるカテゴリーの商品を注文することはできません。彼らは、各カテゴリーごとに別々の注文を作成する必要があります。私の問題は、これを設定する方法を理解できないことです。スクリーンショットを参照してください。今設定されている方法でOrder_DetailsにProductIDがあるので、クライアントが異なるカテゴリから複数の製品を選択するのを止めることはありません。異なるカテゴリの製品を1つの注文で限定する
OrdersテーブルまたはOrders_ItemsテーブルにCategoryID FKを設定した場合、カテゴリは製品の属性であり、注文ではないため、正規化の2番目の形式に違反します。製品カテゴリーは2つの表になるため、冗長性も作成されます。
このために別のテーブルを作成する必要がありますか、何らかの制約によってこれを制限する方法はありますか? (はい、私は自分のアプリケーションでプログラム的にこれを制限することができますが、私はむしろそれがデータベースに正しく設定しています。
個人的に私はこの種のものはあなたのコードで完結していると思います...特殊化をチェックして別のテーブルを追加することはできますが、データベース構造は問題ありません。あなたはあなたのデータベースに妥当性検査を依頼していますが、テーブル構造はあなたにそれを手助けしません。私の意見 – Veljko89
あなたはこれを達成しようとしているコードを共有することができます... – Vikrant
私はまだコードを使用していません。すべてのデザインは、GUIとペンとペーパーで行いました。 –