ブックマーク / watanabek.cocolog-nifty.com (2)

  • 主キーはインデックスではない - 設計者の発言

    仕事柄、奇妙なDB構造を目にすることが多い。どういう発想からそんな設計がされるのかを理解したいと思っていたのだが、モデラー仲間の秋里さんが先日うまい指摘をした。「主キーをインデックスみたいなものと勘違いしているからではないでしょうか」。インデックス(キー)というのは、レコードの並び順を規定するキーのことだ。 たしかに思い当たる節がある。「こんな順にレコードが並んでいれば処理上都合がよさそうだ」という考えで主キーが設定される。さらに主キーはユニーク制約でもあるので、重複が起こらないように「多め」に項目を突っ込んでおく。つまり「ユニーク制約をともなう代表的インデックス」程度に主キーが理解された結果として、グダグダなDB構造が出来上がるのではないか。 じっさい、昔こんなことがあった。{a,b,c,d}の複合主キーをもつテーブルXがある。ところが、別のテーブルYからテーブルXの特定レコードにアクセ

    主キーはインデックスではない - 設計者の発言
    llill
    llill 2014/08/27
    直前のエントリと併せて読みたい。理想像は理解してても業務に精通していないと到達不能であるところから現実に浸食されていくんですよね
  • 「DB構造を見直さない」というアンチパターン - 設計者の発言

    システム開発プロジェクトの失敗原因のひとつに「システム刷新時に、DB構造を見直しせずにプログラムの言語だけを置き換える」というものがある。アンチパターンとまでは言えないとしても、クリティカルな問題をはらんでいる。にもかかわらず、いくつかの理由からこの方針は無批判に受け入れられるか、場合によっては歓迎さえされる。 なぜか。まず、システムの問題がDB構造(帳簿組織)の悪さから来ているという認識を、ユーザーやシステム部門が持ちにくいため、その見直しが明示的に求められないからだ。また、必要なスキルを持った技術者が少ないため、開発側として(大手SIerでさえ)なるべく見直ししたくないのが音だったりするからだ。いかにも問題がありそうに見えても「求められないから手をつけない」という理屈で通す。また、DB構造が多少おかしくてもエレガントなクラス構造でカバーできるから一刻も早くプログラミングさせてほしい―

    「DB構造を見直さない」というアンチパターン - 設計者の発言
    llill
    llill 2011/04/03
    現実はこれ出来る人が居なさ過ぎるので...。業務分析もだけど1コのプロジェクトにロックインされずに横展開できる専門部隊があるべきだよね
  • 1