Mar 3

逆引きrhaco24: テーブルを定義する(その1)

逆引きだったらもうちょっと個別ケースになると思うんですが、それはまた書くとしてproject.xmlの使いかたをまとめておきます。

project.xmlでは以下のことを指定できます。
・プロジェクト名
・データベース名
・テーブル名
・カラム名
・カラムのデータ種別
・テーブルのリレーション
・カラムの入力制限
・カラムの別名
・実際には存在しないが、クラスとして持っておきたいカラム
・実際には存在しないが、クラスとして持っておきたいテーブル

ほとんどなんでもありです。

各項目にの書式について説明します。

・プロジェクト名

<project rhacover="1.4.0" version="1.0.0" name="test" xmlns="http://rhaco.org" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://rhaco.org http://media.rhaco.org/project.xsd">
.....
</project>

rhacover: プロジェクトのrhacoバージョン
version: プロジェクトのバージョン
name: プロジェクト名(setup画面にでかでかとでる)
xmlns,xmlns:xsi : おまじない
xsi:schemaLocation :例の通りに指定してるとPDTなどで補完できる



・データベース名
<database name="rhacodb" renew="true">
....
</database>

name: データベース名
renew: setup.phpのsettingボタンを押した時にモデルを書き換える場合true
タグ内にはテーブル定義が入る


・テーブル名
<table name="Product" class="P" admin="true">
....
</table>

name: DB内のテーブル名
class: rhaco内で使用するクラス名(モデル名)
admin: 管理画面で編集可能にする場合true


・カラム名
<column name="code" type="integer" min="0" max="1000"   label="コード" reference="Category.id" />
<column name="name" var="nm" type="string" >参加者氏名</column>

name: テーブルで実際使われるカラム名
var: rhaco内で使われるカラムモデル名
type: カラムのデータタイプ(serial, boolean, integer, float, string, text, date, time, timestamp, zip, tel, email)無記入の場合string
min, max, size, require, requireWith, unique, uniqueWith, choices, max_digits, primary, chartype :   カラムの入力制限 
reference: リファレンス先の指定(テーブル名.カラム名)
label: admin表示時にラベルとして表示される。
タグ内の文字列: カラムの説明。特に表示はされない。


・カラムのデータ種別
serial
<column name="id" />
<column name="productId" type="serial" />

シリアル値
name="id"の場合無記入ならば自動でserialに設定される。serial指定した場合自動的にprimaryが設定される。


boolean
<column name="bl" type="boolean" />

真偽値
実際カラム生成時の型はSMALLINTなので注意が必要。SMALLINTで0か1を取る


integer
<column name="it" type="integer" />

整数値


float
<column name="ft" type="float" />
<column name="fl" type="float(10,5)" />
浮動小数点
※精度を教えてくだしあ


string
<column name="sg" type="string" />
<column name="st" />
文字列
name="id"以外でtype無記入の場合stringになる。
adminでの入力フォームがテキストボックスになる。


text
<column name="tt" type="text" />
文字列。
adminでの入力フォームがテキストエリアになる。


date
<column name="dt" type="date" />
日付
time()のような整数値、タイムスタンプ文字列ともに指定できる


time
<column name="tm" type="time" />
時間
integerタイプになる


timestamp
<column name="tp" type="timestamp" />
タイムスタンプ
time()のような整数値、タイムスタンプ文字列ともに指定できる


zip
<column name="zp" type="zip" />
郵便番号
文字列タイプでかつ半角数字7字以内制限(ハイフンは含まない)


tel
<column name="tl" type="tel" />
電話番号
文字列タイプでかつ半角数字20文字以内制限(ハイフンは含まない)


email
<column name="ml" type="email" />
メールアドレス
文字列タイプでかつ半角200文字以内制限。メールアドレス簡易表記チェックを行う


続きはその2

※2008/5/29 mail→emailでした。修正しました。

| comment()