テーブル・SQL再設計問題
ストーリーの定番は「誰かがDB構築・SQL作成⇒別の誰か(上司等)が欠点指摘し改良」。
単一の属性だけ更新するのか、全部まとめて更新するのかに注意する。
問題点を自分で考える場合もある。
主キー制約として定義したものを、UNIQUE制約として再度定義することはできない。ただし、例えば施設ID, 店舗IDの組み合わせに主キー制約を課し、施設ID,内線番号の組み合わせにユニーク制約を課すのはアリ。
DBスペシャリスト試験の問題では、grantは気合で各ユーザーに対して行っているが、実際はロールに対して設定する。
[参照制約]
[問題点の例]
月中に契約が更新された従業員の所属部門、雇用区分が履歴管理できない。
AとBで採番されている番号の範囲が重複するので、データの投入時に一意制約違反が発生する。
退職した従業員のデータは在職従業員テーブルから削除されるので参照制約違反が生じる。
ORDER BY句がないので、並び順が保証されないため。
[候補キーを採用できない理由の例]
複数のキーの組み合わせが候補キーになっていて、それらが同時に更新されない場合がある。
空値のままで登録する場合があるから。