0

予約は 1 人の顧客によって行われ、複数の予約を行うことができます。予約の各部屋には、1 人または 2 人の顧客が占有できます。顧客は複数を占めることができます。部屋。予約の食事は、tableNumber 属性を介してテーブルに割り当てられます。属性 name と telephoneNumber の組み合わせは一意であり、属性 roomNumber は一意です。

一意のキーは主キーを意味しますか? これは、名前と電話番号の両方が主キーであることを意味しますか?

ここに画像の説明を入力

追加の質問:

同じキーをテーブルの外部キーと主キーにすることはできますか?

4

2 に答える 2

4

一意のキーは主キーを意味しますか?

いいえ。まず第一に、すべてのキーは一意であるため、「キー」だけでなく「一意のキー」と言うのは冗長です。同じテーブル内のすべてのキーは論理的に同等ですが、便宜上および歴史的な理由から、そのうちの 1 つを選び出して「プライマリ」と呼び、残りを「代替」と呼びます。

これは、名前と電話番号の両方が主キーであることを意味しますか?

いいえ、ここには 2 つのキーはありません (2 つのキーはなおさらです)。2 つのフィールドから構成される複合 (別名「複合」、「複合」) キーは 1 つだけで、たまたまプライマリでもあります。

それが良いキーかどうかは別問題です...

于 2013-05-19T16:23:56.090 に答える
0

いいえ、一意の属性は、属性が一意の値を持つことのみを指し、テーブルの他の行では複製されません。主キーの場合もありますが、リレーショナル デザインで指定する必要があります。

ここからいくつかの重要なポイント

  • テーブルは主キーを 1 つしか持つことができませんが、一意のキーは複数持つことができます。
  • 主キーは、行を一意に指定する列の組み合わせです。
  • 違いの 1 つは、主キーには暗黙の NOT NULL 制約がありますが、一意のキーにはありません。したがって、一意のキー列の値は NULL である場合とそうでない場合があります (実際、そのような列には最大で 1 つの NULL フィールドが含まれる場合があります。NULL は実際の値ではないため (値がないことを表します)
于 2013-05-19T12:26:45.497 に答える