2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

SQLアンチパターン:キーレスエントリ(外部キー嫌い)

Posted at

SQLアンチパターンを読み始めたので、1つ1つ書いてのメモです

目的

  • データベースのアーキテクチャを単純化する
  • 参照整合性は、データベースの設計と運用で大切
  • 仕事で使ってたDBがMyISAMだった...(外部キーが使えない...今はinnoDB)

アンチパターン

  • 完ぺきなコードを前提にしている
  • データの関連づけを維持するためのコードを書くことになり、完璧に動いていることが必要になるから
  • ミスを調べなければならない

アンチパターンの見つけ方

  • 「あるテーブルには存在するけど、もう 1 つのテーブルには存在しない値を調べるクエリは、どう書けば いい?」
  • 聞いたことある...

用いてもいいパターン

MyISAM...

解決策

  • 外部キー制約を宣言する
    -ポカヨケ
  • カスケード更新
  • 親の行の更新や削除が可能になり、さらにその行を参照しているあらゆる子の 行もデータベースが適切に処理してくれる

感想

仕事で使ってたDBがMyISAMだった...

2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?