1

機能依存関係を特定し、次の表を 3NF に正規化する必要があります。すべての依存関係についてはまだ不明です。

依存関係がある場合、それらを他のテーブルにプッシュしますか?

ビデオ店

顧客表

customerNo | customername | address | phone | numberofbooking
  • 顧客番号 – 顧客に関連する一意の番号。 
  • 顧客名 – 顧客の名前。  
  • 住所 – 顧客の住所。 
  • 電話 – 顧客の電話番号。 
  • レンタル数 – 顧客が現在持っているレンタル数。  

customernoは私の主キーnumberofbookingですcustomerno

ビデオテーブル

SerielNo | CopyNumber | title | yearmade | director | origen
  • SerialCode – DVD の背面にある一意のシリアル コード。  
  • CopyNumber - そのビデオのコピー番号。たとえば、ビデオには複数のコピーが保存されている可能性があり、これは各コピーを区別するために使用されます。 
  • タイトル – 映画の名前。 
  • Year Made – 映画が公開された年。  
  • 監督 – 映画の監督。 
  • 原産地 – 映画が制作された国。  

シリアル番号には多くのコピーがある可能性があるため、一意ではないので、各ビデオに一意のserielno番号を追加するつもりでした。videoId

レンタルテーブル

title | customerName
  • title – レンタルされたビデオの名前。 
  • customername – 映画をレンタルした顧客の名前。  

ここで何をすべきかわからない。

4

2 に答える 2

0

あなたがリストしたものから私は...

  • 列を削除します(これは、後でテーブルnumberOfBookingのサブクエリを使用してきれいに計算できます)。rentals
  • Directorおそらくそれ自体のテーブルであり、Videoその関係が必要な場合から外部キー参照を作成する必要があります。
  • customerNameRentalsテーブルの列をcustomersテーブルへの外部キー参照に置き換えます。

幸運を!

于 2012-06-22T00:03:59.647 に答える
0
  • numberOfBooking フィールドを顧客テーブルから削除します。これは冗長であり、レンタル テーブルから簡単に計算できます。

  • ビデオ テーブルを 2 つのテーブルに分割することを検討してください。一方には一意のビデオの情報が含まれ、もう一方には各ビデオのコピーに関する情報が含まれます。

  • ビデオ コピーを識別する ID を追加することを検討してください。これは、シリアル番号とビデオ コピー番号の組み合わせよりも使いやすいです。

  • 一部のディレクターは複数のビデオを作成するため、ディレクター テーブルを追加することを検討してください。

  • 多くの動画が同じ国から提供されるため、国テーブルを追加することを検討してください。

  • 顧客名ではなく、レンタル テーブルの顧客番号を使用します。顧客名は一意ではない可能性があります。

  • ビデオ タイトルではなく、レンタル テーブルのビデオ コピーの ID を使用します。

于 2012-06-22T00:13:28.167 に答える