http://sqlap.doorkeeper.jp/events/4356
はじめに
今回は、「キーレスエントリー」が対象でした。
これまで外部キーのないプロジェクトばかり参加しており「キーレスエントリー」のデメリットを丸々抱えていたので、どのようにしたら改善できるのかを知るきっかけになればいいなと思い、参加しました。
今回のアジェンダは@makopi23さんが発表してくださいました。
ありがとうございました。
これまで外部キーのないプロジェクトばかり参加しており「キーレスエントリー」のデメリットを丸々抱えていたので、どのようにしたら改善できるのかを知るきっかけになればいいなと思い、参加しました。
今回のアジェンダは@makopi23さんが発表してくださいました。
ありがとうございました。
ディスカッション
外部キー制約を貼らない理由として上げられていた、テストデータについてはDB毎に実装されている機能を用いて制約を遅延することができます。
MySQLの場合
13.5.6.4. FOREIGN KEY 制約
http://dev.mysql.com/doc/refman/5.1/ja/innodb-foreign-key-constraints.html
PostgreSQLの場合
SET CONSTRAINTS
http://www.postgresql.jp/document/9.2/html/sql-set-constraints.html
既に外部キー制約が無い場合は、データクレンジングを行い、外部キー制約を貼るのが望ましいですが、コストとの兼ね合いがあるのでやるべきとは言えないというのが、現状ではないかと感じました。
外部キー制約を外すのは、ハイパフォーマンスを得るために已むを得ない場合や、シャーディングをする場合などで、単一のDBを扱うような場合は、初めから付けておくのが必須であるということでした。
DBのマイグレーションや、DDLの作成方法など、モデリングとDBの周辺のお話もいろいろと聞けて、勉強になりました。
おわりに
次回の「EAV(エンティティ・アトリビュート・バリュー)」では、アジェンダを担当することになりました。
「EAV」は、身近なアンチパターンでもあるので楽しみです。
主催の@natsu_nananaさん、参加者の皆様、会場を提供してくださった株式会社アルティネット様ありがとうございました。
次回もまたよろしくお願いします。
「EAV」は、身近なアンチパターンでもあるので楽しみです。
主催の@natsu_nananaさん、参加者の皆様、会場を提供してくださった株式会社アルティネット様ありがとうございました。
次回もまたよろしくお願いします。