0

Oracle SQLは初めてで、これは非常に単純な質問だと思いますが、直接的な答えは見つかりません。データベースにemployeesテーブルがあります。列の1つは'emp_state'で、これは従業員が居住している状態を示します。また、「Customer」テーブルと「office」テーブルがあり、どちらにも「State」フィールドがあります。データベース内の冗長データの量を減らすために、「State」テーブルを作成しました。このテーブルには、対応するIDを持つすべての状態が含まれます。前述のように、このテーブルを他のテーブルで参照したいと思います。テーブルを設定するとき、関連するテーブルで外部キーとして何を定義する必要がありますか?'State_id'または'State_name'である必要がありますか?ユーザーにとって意味のない状態IDではなく、実行されるすべてのクエリに状態名を表示したいと思います。

ありがとうございました!

4

1 に答える 1

2
  • state_idを使用する必要があります。の方がはるかに速い場合はjoin、。INTVARCHAR
  • 州の場合は名前が必要な場合はJOIN、テーブルに置いて取得する必要があります
  • 状態名を更新する場合は、関連するすべてのテーブルを更新する必要があります。IDをお持ちの場合は、名前の列を更新する必要があります。
  • 同じ州名を2回持つことはおそらくないでしょう。しかし、あなたがそうしたらどうしますか?次に、それを変更するか、州名に奇妙な番号を追加する必要があります。

つまり、結論:常にIDを使用する

于 2012-04-30T21:31:11.257 に答える