blog.toxn

あしあと

2015-02-01から1ヶ月間の記事一覧

SQLアンチパターンその5 EAV(エンティティ・アトリビュート・バリュー)

SQL

EAV(エンティティ・アトリビュート・バリュー)とは Attribute(属性)とValue(値)のペアを1行として登録すること。 CREATE TABLE Products ( product_id BIGINT UNSIGNED NOT NULL, name VARCHAR(100), PRIMARY KEY (product_id) ); CREATE TABLE Produ…

SQLアンチパターンその4 キーレスエントリ(外部キー嫌い)

SQL

SQLアンチパターンは全部で25章あるので、毎日書いても1ヶ月かかる内容だった。 なので、今後はそんなにがっつり書かずにポイントだけ。 キーレスエントリ(外部キー嫌い)とは 外部キー制約を使わない いつ起こるのか テーブル間で参照をするとき 何をして…

ファイル内の重複行削除

ファイル内の重複している行を削除する。 fileRowDeduplicator LinqのDistinctメソッドを使うとキレイにできる。 追記: kotyさんに教わった部分を入れてみて、FileUtility2.csとして投稿。かなりスッキリ Enumerable.Distinct(TSource) メソッド (IEnumerab…

SQLアンチパターンその3 IDリクワイアド(とりあえずID)

SQL

IDリクワイアド(とりあえずID)とは 名前のまま、「とりあえずID列作っておこうぜ」ということ いつ起こるのか 主キーを作るルールがあるとき 何をしてはいけないのか(アンチパターン) どんなテーブルに対しても「ID」という名前の列(サロゲートキー)を…

SQLアンチパターンその2 ナイーブツリー(素朴な木)

SQL

ナイーブツリー(素朴な木)とは 「素朴な」という訳がぴんとこなかった… 「単純、未熟な」(思慮から生まれる)ツリー構造。 いつ起こるのか 表の構造で、ツリー(階層)構造を格納しようとするとき 何をしてはいけないのか(アンチパターン) 階層として「…

SQLアンチパターンその1 ジェイウォーク(信号無視)

SQL

ジェイウォーク(信号無視)とは (例えば)カンマ区切りで複数の値を持つ列を作ること。 例:アカウントのテーブル。このアカウントは複数のグループに所属できる。 (account_id, name, group_id) --------------------------- (1, "hoge", "1,2,36,103") (…

SQLアンチパターン読み始めた

SQL

仕事でDBを触る機会が増えました。 転職前はSQLもうろ覚えだったんですけど、割と慣れてきました。 いざ使いはじめると業務が持つデータ量の多さにビビります。 あとは、アプリ開発していく中で既存のテーブルをメンテナンスしたり、自分で必要なテーブル作…

会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww - IT速報 を読んで思ったこと

会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww : IT速報 会社でjQuery使ったら無能上司に怒鳴られたんだがwwwww : IT速報 「何でこんなことも知らないの?老害なの?」と仕事しながら思ってる人はそれなりに居ると思うし、私でSIerとして…