Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/tokuhirom/data-model-tutorial

the tutorial documents for Data::Model
https://github.com/tokuhirom/data-model-tutorial

Last synced: 18 days ago
JSON representation

the tutorial documents for Data::Model

Awesome Lists containing this project

README

        

* Data::Model とは

id:yappo さんがつくっている O/R Mapper。新興のものでチュートリアル的なものがない
ので自分でかいてみることにしました。

とはいえ、Data::Model 自体がまだまだαクオリティですので、チュートリアルもてぬき
です。

* つかってみる

** DBI を対象につかってみる

Data::Model は、Data::Model のスキーマ定義からCREATE TABLE 文を発行することができ
ます。なので、まずはスキーマ定義を Perl で書きます。

see lib/Neko/DB/User.pm

カラムの詳細な定義は、別ファイルにします。

see lib/Neko/Columns.pm

カラムの定義を別ファイルにするというところは、他の O/R Mapper とのおおきな違いで
すね。これによって得られるメリットは「カラム定義の共通化」ですね。たとえば、レコー
ドの作成日付を保存する created_on なんていうのは複数のテーブルで同じ定義をつかい
たいものですから、共通化できると便利です。

** スキーマ定義を実際につかう

これをよびだし、CREATE TABLE 文を発行するには、

see script/dump_schema.pl

のようにします。driver を各 schema に対して発行するというあたりがポイントになる
かとおもいます。わずらわしいですが、ここはぐっと我慢しましょう。

see script/crud.pl

に、簡単な SELECT/INSERT/UPDATE/DELETE の例をのせておきました。

** Memcached をつかってみる

Data::Model ではストレージとして SQLite の他に memcached protocol によるデータの
保存にも対応しています。ここではいわゆる hash database 的なものをつかうことが想定
されています。Tokyo Tyrant などをストレージとして、Data::Model でデータをあつかえ
るということです。

Memcached をつかう場合の例は下記のスクリプトにおいてあります。

see script/memcached.pl

** キャッシュを使ってみる

DBI や Memcached のストレージへのアクセスするさいに Memcached などのキャッシュを
挟む事が出来ます。の、予定。