Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
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
- Host: GitHub
- URL: https://github.com/tokuhirom/data-model-tutorial
- Owner: tokuhirom
- Created: 2009-02-04T15:10:12.000Z (almost 16 years ago)
- Default Branch: master
- Last Pushed: 2009-02-05T04:17:41.000Z (almost 16 years ago)
- Last Synced: 2024-10-17T23:13:55.032Z (28 days ago)
- Language: Perl
- Homepage:
- Size: 78.1 KB
- Stars: 22
- Watchers: 10
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README
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 などのキャッシュを
挟む事が出来ます。の、予定。