「ORMがトラブル起こすから嫌い」なんじゃなくて、「ORMが起こすトラブルが解決できないから嫌い」ってのがほんとのところじゃない?だったら解決方法を知ればいいんじゃね?というお話。「N+1問題」もろくに知らずにORMを批判せんでほしい。

テーブルのJOINが苦手でしたが、この例を思いついてからは、すっきりくっきり理解できるようになりました。むしろ頭から離れません……。 ※ INNER、OUTERは飾り。省略できる。 INNER JOIN → JOIN LEFT OUTER JOIN → LEFT JOIN RIGHT OUTER JOIN → RIGHT JOIN ※ ON ...=... をまとめて USING(属性) と書ける。 ※ 何で結合するか言うまでもない時は、NATURALを指定すると勝手にJOINしてくれる。NATURALにJOINして……。 ※ WHEREは結合した結果に作用する。 ※ 現実には上図のように1対1で結合しません。 ※ おまけ。CROSS JOIN。 こんなの使いません。 ブクマ用画像。
2008.2.27 追記 コメントで教えていただきました下記方法で簡単にできました。 is null asc の指定と 通常の asc の指定をするのがポイントですね。 SELECT id, comment FROM table ORDER BY comment IS NULL ASC, comment ASC; —–追記ここまで—– MySQL で昇順にソートすると NULL は一番最初に来ます。 それを最後にできないかということで下記のようなSQL を考えてみました。 SELECT id, comment, CASE WHEN comment IS NULL THEN 10000 ELSE ASCII(LEFT(comment,1)) END AS dummy FROM table ORDER BY dummy ASC, COMMENT ASC comment カラムを昇順でソートして
Posted by glenn on Wednesday, June 18, 2008 Posted in optimization, activerecord, rubyonrails Apologies to all for the extended hiatus, I was in the US for a month on holiday; and then I just got lazy. Anyway, I'm back and plugging someone else's extension. I came across ActiveRecord Extension last night, and was quite frankly dumbfounded that 1) I hadn't come across it before, and 2) More peopl
※ 画面は公式サイトのデモコードより 最近のWebシステム開発ではO/Rマッピングの利用が当たり前になっている。そのため、生のSQLを書く機会が殆どなくなり、開発がスムーズになっている一方、いざ書くとなると非常に面倒に感じるようになっている(もちろんORマッピングではコストがかかってしまう場合はSQLを書く必要もあるだろうが)。 JavaScriptで実現するO/Rマッピング それはSQLiteが使えるiPhone/Gears/Adobe AIRといった今時の開発に対しては特に言える。O/Rマッピングに慣れてしまった体にはSQLite向けのSQLを書くのは非常に辛い。そこで使えるのがActiveRecord.jsだ。 今回紹介するオープンソース・ソフトウェアはActiveRecord.js、JavaScriptで作られたO/Rマッピングソフトウェアだ。 ActiveRecord.jsが対応
米 Yahoo! が Yahoo! Pipes みたいに自由度が高くて、またちょっと毛色が違うサービスが出てきた。題して、Yahoo! Query Language。YQL と呼ぶようだ。SQL 風の言語を REST で投げて、結果を XML や JSON で受け取ることができる。具体的にやってみないと分かりにくいので、とりあえず試してみた。RSS からデータ取得YQL を使って RSS から最新のタイトル10個を取ってきてみる。こんな YQL になるらしい。 select title from rss where url='http://d.hatena.ne.jp/nitoyon/rss' rss テーブルに対して select を発行している。実際にこの YQL を試すには YQL 用の console を利用するとよい。(※要ログイン)console の左上に YQL を入力して
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く