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

特定の2つのタグが付けられたバグ検索

7章 マルチカラムアトリビュート(複数列属性) より 特定の2つのタグが付けられたバグ検索といった少し複雑な処理も、簡単に記述できます。 BugsテーブルとTagsテーブルが1対多の関係のとき、"printing"と"performance"という2つのタグが付いたバグの検索をど…

交差テーブルを参照するテーブルの外部キー

3章 IDリクワイヤド - 3.5.3 自然キーと複合キーの活用 より 現実問題として、複合主キーがどのようにフレームワークでサポートされているか等については良く知りません。 1つ注意すべき点は、複合主キーを参照する外部キーもまた、列の組み合わせでなければ…

参照テーブルとアプリケーションの値リスト

10章 サーティーワンフレーバー(31のフレーバー) より ENUMのかわりに参照テーブルを使うという話。基本的にはやってみたいと思うアイディアだった。 すると、多くのプログラマーは、アプリケーションコードの側にも値のリストを定義し、手でメンテナンスす…

SQLでfloat型を使うということ

9章 ラウンディングエラー(丸め誤差)より floatを使う場合に精度に注意すべきという点については同意です。 SELECT * FROM Accounts WHERE hourly_rate = 59.95; このため、account_idが123の行hourly_rate列にサイド59.95を割り当てても、リテラル値59.95と…

カスケード更新のパターン

4章 キーレスエントリ(外部キー嫌い)より カスケード更新について考えてみる。 ON UPDATE、ON DELETE句には、RESTRICT, CASCADE, SET NULL, SET DEFAULT, NO ACTIONが指定できる。ただしMySQLにはSET DEFAULTは無い。 CREATE TABLE Bugs ( ... FOREIGN KEY (…

SQLアンチパターンメモ

SQLアンチパターンを読んだのですこしずつ思ったことをメモしていこうと思います。 この本は読んで納得するというよりは、考えるきっかけを与えてくれる本だと思います。長い歴史の中で今になってこういった本が出てきたというのがSQLの不思議な運命を象徴し…