2014年6月16日月曜日

「シリアライズ」目的のORマッパーがあってもいいじゃない

ORマッパーでやりたいことって、その名の通り、オブジェクトとRDBを対応付けたいだけったりする。拡張性があった方がいいのだけれど、やりたいことしては「シリアライズ」に近い。

そしてシリアライズってデータ構造丸出しで、いわゆる「カプセル化」ってことは優先度が低い。

そんなわけでシリアライザーとしてお手軽につかえて、拡張しようと思えば拡張できるというORマッパーを自作してみた。オブジェクトとRDBというよりも配列とDBという組み合わせ。


これで何が嬉しいのかっていうと、phpmyadminみたいに、プログラミングなしで大体のことができるってこと。もちろんmysql側での定義がいっぱい居るのだけれど、データ管理だけに集中できる。

さらに社内用途であれば、セキュリティ的にはあんまり気にしないでもいい。

社内用途や管理画面では、ここまで動的管理画面にできる。
$db = new BenriDB($_GET["table"])
$db->insert($_POST);

今さら、こんなオールドタイプのORマッパーというのも時代遅れな気もするが、XMLが出てきたあとにやっぱりJSONで収まったように、オブジェクトじゃなくて配列なんじゃないの?って気がする。

ちなみにphpmyadmin は、infomation_schema ってテーブルを参照して、テーブル毎のフィールドの型を参照している。スキーマはMySQLが教えてくれるので、ソース側ではスキーマ定義をする必要はない。どのフィールドがプライマリーキーかもmysqlが教えてくれる。いちいちmysqlを参照しているのが気になるものの、全く変化のないテーブルをどーんと参照するだけなので、キャッシュに乗るんじゃないのかな。たぶん。

0 件のコメント:

コメントを投稿