2

私はユーザーが単一のアカウントでバイヤーと売り手になるモデルを設計しようとしていますが、この図は間違っている冗長性を持っています。エンティティリレーションシップダイアグラム冗長性:店舗、製品、受注、カテゴリ

私はこの図を見直しましたが、この冗長性を解決する方法は見つかりませんでした。テーブルorders私は誰が買い手であるか知る必要があるので、この理由から私はテーブルからこれを削除しませんでした。いくつかのアイデア?

enter image description here

+1

この図にはユーザーがいません。 'Orders.buyer'と' Product.seller'はどちらもTBL_storeを参照していますか?このように、企業間の販売モデルはありますか?そこに冗長性は見られません。どの部分に冗長性があるかを明確にするよう教師に依頼するか、冗長性のために発生する可能性のある異常を記述することができます。 –

+0

はい、bからbです。ご意見ありがとうございます。 – AndresChika

+1

あなたの質問とは無関係ですが、「Product」と「OrderProduct」に数量を追加することもできます。商品に2つ以上の「売り手」が存在する場合 –

答えて

4

あなたのスキームで(正確には正規化されていない)、「冗長」だけの事はこれです:

link table

あなたは特別なIDを作成する必要はありません、複合PKで十分です。 @Blagが言ったことの上に

------------------- 
| ORDERPRODUCT | 
------------------- 
| PK | PRODUCT_ID | 
| PK | ORDER_ID | 
------------------- 

ADD CONSTRAINT pk 
PRIMARY KEY (PRODUCT_ID, ORDER_ID); 
+0

IDは、1NF以上の正規化とは関係ありません。 – philipxy

0

Categoriesのために、あなたは同じことを行う可能性がある2つのフィールドがあります。categorynamedescriptionを。あなたはすでにPK_IdCategoryという識別子を持っているので、それらの1つは不要かもしれません。