2016年05月14日

[書評]SQLアンチパターン6章を読んだ

blogramランキング参加中!

SQLアンチパターン

新品価格
¥3,456から
(2016/5/14 10:07時点)



[書評]SQLアンチパターン5章を読んだ
の続編

6章はポリモーフィック関連
本章もためになりました

以下、内容

・前提
Aテーブルと
Bテーブルに
紐づくCommentテーブルを作る


・アンチパターン
Commentのカラムに
AかBかという判別をつける
ただし結合したいテーブルが2つあるので
外部キーが使えない


・アンチパターンを使っても良い場合
rails等のフレームワークのORMでは
polymorphic
オプションがある。
そうすると二つのテーブルに紐付けるテーブルが作れる
後々フレームワーク移行するときには辛そうだけどね


・交差テーブルの作成
Arelation
Brealtion
を作って
Arealtion
Brealtion
の外部キーとして
Aテーブルと
Bテーブルと
Commentテーブルを外部キーとして設定する。
先輩のコードでこれあったなぁって思った


・ユニークにする
ArelationでCommentの外部キーに
uniqueの制約をつければテーブル内はユニークになる。
ただし、ArelationとBrelationの二つのテーブル間で
ユニークにするのはアプリ側に委ねられてしまう


・共通の基底クラスを作る
issue:idがあるテーブルを生成
A:issueのidが外部キーで主キー
B:issueのidが外部キーで主キー
comment:issueが外部キー
こうしておくと
commentとAやBに外部キーの制約なくても
joinできるよって話。


本章も非常にためになりました。
はまりがちなので注意って感じです。
まだまだ続く
タグ:SQL
posted by マスタカ at 10:15 | Comment(0) | TrackBack(0) | | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック