2009年8月29日土曜日

MySQL の geometry 型

座標をDBに入れるならこの geometry 型を使ってみよう!と思ってやってみたが、CakePHP だと座標の取得の度に 'fields'=>array('X(lnglat) AS X', 'Y(lnglat) AS Y') を書かなければならず面倒…

面倒くさがり屋の私はやはり lat decimal(9,6), lng decimal(9,6) のほうが扱いがはるかにラクということに気が付いた。
テーブルに geometry と decimal の両方のフィールドを設けて、当面様子をみることにしよう。

CIRCLE とか使って「半径 X km 以内のお店を検索」などのサービスをすることを目論んでいたが、MySQL ではまだ CIRCLE もDISTANCE もない。道は遠そうだな…

2009年8月20日木曜日

MySQL での DELETE WHERE EXISTS

MySQL では DELETE 時の WHERE 区で EXISTS, NOT EXISTS は指定できないらしい。

DELETE FROM tab_a a
WHERE NOT EXISTS
(SELECT * FROM tab_b b WHERE a.id=b.id)

みたいなのはSQLエラーとなります。
残念...

2009年8月19日水曜日

CakePHP の bake はとても便利

bake は超便利で使いまくりですが、bake が吐き出す view がとっても English なので日本語に変更しなければならずそこんとこが面倒。

bake が view を吐き出すのに使っているテンプレートは /cake/console/libs/templates/views にあるので、それらを直接書き換えてから bake するとかなり幸せ。