[Web]INTER-MediatorとSQLite
使えるデータベースはSQLiteのみのサイトをINTER-Mediatorで構築してみる。
ツールとして、Coda2とDiet Codaを使ってみたのだが、iPad miniでPHPが編集できるなんて、素晴らしい世の中になったものだ。
SQLiteのデータベースファイルは、事前に生成した物をサイトにアップする事にしたので、スキーム・ファイルの設計が必要だ。
CREATE TABLE person
);
CREATE UNIQUE INDEX person_id ON person (id);
INSERT INTO person(id,membership_number,name) VALUES (1,'012345','Yukio Murakami');
INSERT INTO person(id,membership_number,name) VALUES (2,'000002','Someone');
INSERT INTO person(id,membership_number,name) VALUES (3,'000003','Anyone');
CREATE TABLE attendance
);
CREATE UNIQUE INDEX attendance_id ON attendance (id);
CREATE INDEX attendance_person_id ON attendance (person_id);
INSERT INTO attendance (person_id,class_name,date) VALUES (1,'General','2013-1-6');
INSERT INTO attendance (person_id,class_name,date) VALUES (1,'General','2013-1-11');
INSERT INTO attendance (person_id,class_name,date) VALUES (1,'Special','2013-1-12');
スキーム・ファイルの名前は、rollbook_schema_sqlite.txtとした。
次は、データベースファイルを生成。
$ mkdir db
$ mkdir db/im
$ sudo sqlite3 -init rollbook_schema_sqlite.txt db/im/rollbook.sq3
sqlite> .quit
$ sudo chown _www db/im
$ sudo chown _www db/im/rollbook.sq3
定義ファイルは以下のとおり。
<require_once ('INTER-Mediator/INTER-Mediator.php');
IM_Entry(
array(
array(
'records' => 1,
'paging' => true,
'name' => 'person',
'key' => 'id',
'query' => array( /* array( 'field'=>'id', 'value'=>'5', 'operator'=>'eq' ),*/),
'sort' => array(array('field' => 'id', 'direction' => 'asc'),),
'repeat-control' => 'insert delete',
),
array(
'name' => 'attendance',
'key' => 'id',
'relation' => array(
array('foreign-key' => 'person_id', 'join-field' => 'id', 'operator' => '=')
),
'repeat-control' => 'insert delete',
),
),
array(
'formatter' => array(),
'aliases' => array(
'attendanceid' => 'attendance@person_id@value',
'attendancename' => 'attendance@name_person@innerHTML',
),
),
array(
'db-class' => 'PDO',
'dsn' => 'sqlite:/それぞれの環境のパスを記述/db/im/rollbook.sq3',
),
0
);
?>
実は、第二引数のaliasesに何を指定したらいいのか分かっていない。nullを指定すると上手く動かなかったので、サンプルを見よう見まねで真似た。
ページファイルは、Amebaブログではエラーになったので掲載していない。あしからず。
上手く動いているようだ。
今回、サイト側の作業はCoda2を使ったのだが、便利だね!
関連情報
INTER-Mediator
【Cocoa練習帳】
http://www.bitz.co.jp/weblog/
http://ameblo.jp/bitz/(ミラー・サイト)
- エレガントなWeb開発・美しいコードCODA入門/技術評論社
- ¥2,604
- Amazon.co.jp