2013-04-01から1ヶ月間の記事一覧

EAV(エンティティ・アトリビュート・バリュー)

テーブル設計の変更が起きると、それを使用するプログラムに大きな影響を与えることから、出来る限りテーブル設計の変更を避けようという意識が働く事が多い。よって、柔軟な設計にするため、より抽象度の高いテーブルを設計しようとする。ただそのデメリッ…

SQLアンチパターン3

SQLアンチパターンの感想の続きです。ゴールデンウィーク中にどこまでいけるだろう。

キーレスエントリ(外部キー嫌い)

「参照整合性制約を設定しない。」という設計指針に対するアンチパターン。比較的このような設計をしているところを多く見る。 そもそも参照整合性制約を設定しないということは、ERモデルも記述する必要がない。テーブル定義はすべてExcelで定義すればよい*…

IDリクワイアド(とりあえずID)

すべてのテーブルの主キーをidという名前の属性(列)にし、ドメインを整数にしてしまうというもの。これを擬似キーともよび、本来のキーを自然なキーとよぶ。Railsなどのフレームワークなどが採用している設計指針に対する反論ともいうべきだろうか。本書で…

SQLアンチパターン2

SQLアンチパターンの感想の続き。

ナイーブツリー(素朴な木)

木構造を隣接リストで表現すると、n階層の検索をすることができなくなったり、ノード全体を削除するのが複雑になるという主張である。隣接リストとは、親への参照を作成するだけである。自分自身と親への参照を持っているに過ぎない設計なので、ある非葉ノー…

ジェイウォーク(信号無視)

ひとつの属性に複数の値を入れてしまうというもの。例えば、一人の社員が複数の部署に属するからといって、社員のテーブルの部署という項目にカンマ区切りで属する部署を入れてしまうといった設計である。問い合わせが難しくなったり、参照整合性制約が設定…

SQLアンチパターン1

SQLアンチパターンを読んだ感想を書きたいと思う。全体の感想は別として、まず各論のパターンについての感想を書く。SQLアンチパターン作者: Bill Karwin,和田卓人,和田省二,児島修出版社/メーカー: オライリージャパン発売日: 2013/01/26メディア: 大型本購…