2016-09-19 10 views
1

正規化の助けが必要です。私は自分のデータベースプロジェクトで3NFを完成させる方法を理解するのに困っています。ここで 1NF正規化推移的従属性

がある正規化された表

Donut ID(PK) 
Donut Name 
Description 
Unit Price 
Donut Order ID 
Qty 
CustomerID 
Last Name 
First Name 
Last Name 
Street Address 
Apt 
City 
State 
Zip 
Home Phone 
Mobile Phone 
Other Phone 
Order Date 
Special Notes 

2NF ドーナツ表

DonutID (PK) 
Donut Name 
Description 
Unit Price 

受注表

Sales OrderID (PK) 
CustomerID 
Last Name 
First Name 
Last Name 
Street Address 
Apt 
City 
State 
Zip 
Home Phone 
Mobile Phone 
Other Phone 
Order Date 
Special Notes 

受注明細表

Sales Order (PK)(FK) 
Dount ID (PK)(FK) 
Qty 

私の問題は、3NFで推移的な依存を取り除くれます。私の4番目のテーブルで使用する属性は何ですか?何も重複しないか、主キーがなくとも相互に依存しますか?どんな方向にも大変感謝しています。

答えて

1

Sales Orderテーブルは、顧客の名前と住所に過渡的に依存します。詳細を見てみると、各注文には特定の顧客の完全な住所と名前の情報が含まれていることがわかります。これを解決するには、これらのフィールドを持つことになり、新しいCustomerテーブルにこの情報を移動することができます。

カスタマー表

CustomerID (PK) 
Last Name 
First Name 
Last Name 
Street Address 
Apt 
City 
State 
Zip 
Home Phone 
Mobile Phone 
Other Phone 

Sales Orderテーブルはその後になる:

受注表

Sales OrderID (PK) 
Order Date 
CustomerID (FK) 
Special Notes 

受注日は、Sales Orderテーブルに残ることができます。概念的には、各注文が発生したときにその注文に固有のタイムスタンプを表すためです。

+0

ああ、あなたに感謝してくれてありがとう!私は2NFに注文日を入れるのを忘れていました。私はそれを編集してみましょう、私はプログラミングに慣れています。 – Danestyles

+0

これを考慮に入れて更新しました。 –

+0

もう一度ありがとう!私 – Danestyles