" />
本ページはプロモーションが含まれています。

スポンサーリンク

データベース

ユニーク制約・外部キー制約はつけるべき?

意外と現場によって分かれてるのが、テーブルのユニーク制約や外部キー制約を、積極的につけてるところと付けてないところがあることです。

結論としては、
・外部キー制約 はなくてもOK
・ユニーク制約 は積極的につけるべき
と考えています。

外部キー制約

外部キー制約は積極的には貼らないか、全く貼ってない現場が多い気がします。

貼るデメリットとして、データ構造がガチガチになって、データ作るのが難しくなります。
特定テーブルのレコード作るのに、あのテーブルも、あのテーブルも作らないといけなくなり、うんざりしてきます。

貼ることでレコードとしての品質は担保されるのですが、保守していく上では上のように大変になるので、貼らないという判断がされるのでしょう。

ユニーク制約

ユニーク制約を貼ったカラムには、同一値が存在できなくなりますね。
ユニーク制約が貼られてると、同一値が存在できないことをシステム的に保証できるので、いざという時の助けになりまます。

設計書を作成してない現場では、なんとなく「このカラムって同一値ないんですよね?」という、なんとなくの議論になってしまいます。
コードの中で同一値の存在チェックがあっても、設計書がないので、他のコード箇所で同一値が入るようになってる可能性が拭えません。

そんな時に、ちゃんとユニーク制約が貼られていると、システム的に保証できるので安心できる。
コード確認しなくても一意性が一目瞭然で担保されてる。

 

外部キー制約は貼らなくても、ユニーク制約は貼っておくと、予期せぬバグの発生を防ぐことができることがあるので、ユニーク制約は貼った方がいいと思った次第です。

スポンサーリンク

-データベース