http://sqlap.doorkeeper.jp/events/3416
はじめに
SQLアンチパターンの読書会が開催されるとのことでしたので、申し込みました。
自分が経験していなかった話を聴いたり、逆に自分が経験したパターンについて他の人がどういう対処をしてきたのか知りたいと思ったのがきっかけです。
自分が経験していなかった話を聴いたり、逆に自分が経験したパターンについて他の人がどういう対処をしてきたのか知りたいと思ったのがきっかけです。
ジェイウォーク
読書会とは言うものの読んでくる前提でしたので、ディスカッションが主な内容でした。
ジェイウォークに陥る要因として上げられたのが、以下の通りでした。
- そもそも、交差テーブルを作るということを知らない。
- テーブルを追加するには、いろいろと手続きが必要。
なので、そういう匂いを感じたら、交差テーブルを導入するのが正しいということを知りました。
一対多が多対多になる可能性が予見されるのなら、交差テーブルを必ず使うこと。at ジェイウォーク #sqlap
— とーますさん (@grimrose) 2013年4月11日
解決策の交差テーブルを導入するのが望ましいのですが、既にジェイウォークになっていた場合は、どのように解決したら良いかという疑問については、@t_wadaさんがデータベース・リファクタリングの本を用いて解説したくださいました。
トリガーを用いて新しい交差テーブルへデータを同期して、アプリケーション側で経過措置を講じ、最終的に交差テーブルを利用するように変更するといった内容でした。
DB周りについて体系的に学習したことがなかったので、こういった対応が出来るということ自体知りませんでした。
また、交差テーブルについても、関連付けられた日付などキー以外の項目が必要になってきたりして単なる交差テーブルからエンティティへ変化してしまうこともあるので、テーブルを設計するのはやはり難しいと感じました。
おわりに
今以下のジェイウォークは、本の始めの方にあるので容易に感じてしまいそうですが、解決策の先がまだあり奥深いものだと実感しました。
また、@t_wadaさんにSQLに関して参考になる書籍を教えていただいたので、一つづつ取り寄せて見たいと思います。
次回は、ナイーブツリーということで、自分の経験した内容でもあるので、楽しみです。
主催の@natsu_nananaさん、参加者の皆様、会場を提供してくださった株式会社アルティネット様ありがとうございました。
次回もまたよろしくお願いします。
また、@t_wadaさんにSQLに関して参考になる書籍を教えていただいたので、一つづつ取り寄せて見たいと思います。
次回は、ナイーブツリーということで、自分の経験した内容でもあるので、楽しみです。
主催の@natsu_nananaさん、参加者の皆様、会場を提供してくださった株式会社アルティネット様ありがとうございました。
次回もまたよろしくお願いします。