DB

SQLアンチパターン

献本いただきました。ありがとうございます。 当たり前を当たり前にできる可能性を秘めた本 この本の素晴らしいところは、よく見る「悪い」方法を、「悪いこと」としてまとめてくれたことです。 今までは、筋のよくない設計やSQLを考え直してもらうためにあ…

それは結論間違ってる気が・・・

DB

まずは例外に依存するロジックは駄目ですよを読んでください。 一番最初のコードは問題外としても、二番目のコードがベストだとも思えない*1んだけど、問題はそこじゃなくて、結論。 このケースのように、事前に対象データの絞り込みは言語で行うほうが良い…

行持ち・列持ち (横持ち)

ちょっとまとめ。 行・列 行と列は漢字からイメージすると覚えやすい。例えば、以下のテーブル col_a col_b col_c col_d 1 2 3 4 5 6 7 8 なら、一行目は 1, 2, 3, 4 だし、三列目は 3, 7 となる。 列持ち (横持ち) では、列持ちとはどういうテーブルのこと…

部分文字列が取得したくなったらテーブル設計を疑え

DB

絶対の指針ではないけど、部分文字列が取得したいと言うことは、ひとつのカラム内に複数の独立したデータが存在する可能性がある*1。 例えば以下のわかりやすい例。 tableはweatherテーブルとし、 id:int content:char 正規表現抽出内容[曇時々雪 - 最高気温…

論理設計と物理設計

DB

本来のエントリの目的の物理とか論理とかはどうでもいいと思う。外部設計とか基本設計とか言う単語がどうでもいいように。 日本語テーブル名は悪くないと思う - しんさんの出張所 はてな編 ふと気になって、論理設計と物理設計についてGoogleで検索してみた…

論理設計、物理設計?

DB

日本語の名前が論理設計、英語(ローマ字混在)の名前が物理設計だと思ってる人がいるみたい。 つか、日本語の名前でテーブル設計するのやめて欲しいんだけど。コメントでやってくれ。

マスタテーブル

DB

突っ込みどころは色々あるかもしれないけど、とりあえずまとめてみた。 マスタテーブルとは? マスタテーブルやトランザクションテーブルという単語はよく聞くけど、会社によって、更にプロジェクトによってもまちまちで、これといった定義は(多分)存在しな…

SQL Server 2008

DB

SQL Management StudioがVisual Studioに近づいててびびった。 それよりも、データ型にdate型、time型が出来たのが非常にありがたいな。 今までcmp_ymd*1やらcmp_hms*2やら、eq_ymd*3やらそんな感じのユーザ定義関数を大量に作って使っていたのを考えるとか…

経路列挙モデル

RDBで親子関係を表すのに、たぶん隣接リストモデルがもっとも使われていると思う。 簡単に説明すると、子供に親へのポインタを持たせるようなものだ。 ただ、このモデルを採用すると、どうしてもきれいに問い合わせが書けなくなってしまう。 それを避けるた…

iBATIS(もしくはiBATIS.NET)

これはなかなか自分にあったO/Rマッピングツールかもしれない。 ちょっと調べてみようかな。

JOINでパフォーマンスが下がるという幻想

DB

テーブル結合でパフォーマンス低下って、あんまり経験ないんだけど…。 はてなブックマーク - これは・・・ - 予定は未定Blog版 なんてはてブコメントが付いていたけど、正規化されてて、きちんとしたインデックスが張られてるならJOINでパフォーマンス低下す…