ERMaster超便利なので、Android開発でも使えないかな〜?と思ってやってみました。

流れとしては以下になります。
 1.ER図描く
 2.DDLエクスポート
 3.asset/sqlフォルダ下に配置
 4.「3.」のファイルを読み込んでListを返却するUtilを呼び出す
 5.「4.」のリストを元にSQLHelperクラスでcreate時にDDLファイルを読み込んでDBを構築

今回は、4までの内容になります。 


まずeclipseにERMasterのプラグインを導入します。(念のため)


ER図を描いてDDLをエクスポートします。
スクリーンショット 2012-07-15 17.08.05.png

ERエディタ上で右クリックー>エクスポートー>DDL

スクリーンショット 2012-07-15 17.08.25.png

エクスポート時の設定で不要なコメント行とかは極力なくすようにする。
(Android側でファイル読み込みを楽にするため)

スクリーンショット 2012-07-15 17.09.07.png


エクスポートしたSQLファイルの中身はこんな感じ。
とりあえず見たところ、コメント行と空行をなくせばいい感じかな。 

----------------- ここから -----------------


/* Drop Tables */


DROPTABLE T_SPEECH;

DROPTABLE T_MEETING_USER;

DROPTABLE T_MEETING;

DROPTABLE T_USER;





/* Create Tables */


CREATETABLE T_MEETING

(

_ID INTEGERNOTNULLPRIMARYKEY AUTOINCREMENT,

NAME TEXT,

START_TIME TEXT,

END_TIME TEXT

);



CREATETABLE T_USER

(

_ID INTEGERNOTNULLPRIMARYKEY AUTOINCREMENT,

NAME TEXT,

GOBI TEXT,

ICON INTEGER,

TEXT_COLOR INTEGER

);



CREATETABLE T_MEETING_USER

(

MEETING_ID INTEGERNOTNULL,

USER_ID INTEGERNOTNULL,

FOREIGNKEY (MEETING_ID)

REFERENCES T_MEETING (_ID),

FOREIGNKEY (USER_ID)

REFERENCES T_USER (_ID)

);



CREATETABLE T_SPEECH

(

MEETING_ID INTEGERNOTNULL,

SPEECH_NO INTEGERNOTNULL,

USER_ID INTEGERNOTNULL,

MESSAGE TEXT,

TIME TEXT,

FOREIGNKEY (MEETING_ID, USER_ID)

REFERENCES T_MEETING_USER (MEETING_ID, USER_ID)

);


----------------- ここまで -----------------



asset/sqlフォルダ下にsqlファイルを配置する。

スクリーンショット 2012-07-15 17.18.18.png



その配置したファイルを読み込んで、List<String>に変換して返却する自作Utilがこちら。




本当はこのあとSQLiteにぶっこむんだけど、
とりあず一旦ListViewで表示して確認。

f8b93f4f.jpg


ってなわけでサクッと良い感じ。
いくらSQLiteでもソース内にCreate文とかベタ書きするのは気が引けるし、
ER図以外のファイルをDB設計で弄りたくないですからね!