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文字以内制限(ハイフンは含まない)
<column name="ml" type="email" /> メールアドレス 文字列タイプでかつ半角200文字以内制限。メールアドレス簡易表記チェックを行う
続きはその2で
※2008/5/29 mail→emailでした。修正しました。
このエントリーのはてなブックマーク (