2011-01-13 11 views
0

(したがって、予約タイプ - プレゼンターが予約料金を支払っていない場合は、代理人またはプレゼンター)。イベントは、特定の会場で走っているコースのインスタンスにすぎません。 VenuePriceがここに介在夜データベースの正規化

するには、ホテルの会場では、オプションのベッド&ブレックファーストのためのコストを意味し、私は3NFのために出ているものです:

COURSE=(CourseID, CourseName, CourseDuration, CourseFee) 
DELEGATE=(DelegateID, DelegateName, DelegateAddress) 
EVENT=(EventID, VenueID*, CourseID*, EventName, EventDate) 
BOOKING=(BookingID, DelegateID*, EventID*, BookingDate, BookingType) 
VENUE=(VenueID, VenueName, VenuePrice) 

私はこれがであるかどうかを知りたいのですがすべて正しく、もしそうでなければ、おそらく正しい方向への指導の手?

ありがとうございました

+0

宿題ですか?私はあなたがそれを理解したと思うので...実際には何も言いません。 – markus

答えて

3

あなたはどのような基準で3NFにいると思いますか?

本当に簡単な例を考えてみましょう。Course正確にどこに彼は機能依存、どのような鍵ですか? とCourseFeeCourseNameに依存する場合、CourseNameCourseIdにどのように依存しますか?

他のテーブルと同じです。 Eventは少し複雑ですが、いくつかのエラーがあります。

出発点が移動するすべてにIDを貼り付ける場合、3NFを正規化することはできません。

No.最初にデータを正規化します。 3NFを達成する。 CourseCodeまたはShortNameは、ユーザーがコースを識別するために使用するものとして理解できますが、Idはありません。その後

、あなたがする必要がある場合にだけ、Id列と追加インデックスを追加します。

関連する問題