Reactorをはじめる-6
今日は、cfOpenSourceListアプリケーションのReactorのオブジェクト定義を確認します。
Reactorをはじめる-3で紹介したように、このアプリケーションは3つのテーブルをもっています。
一つ目は、オープンソースソフトウェアのリソース情報を格納するOpenSourceResourceテーブル。
二つ目は、オープンソースソフトウェアのカテゴリ情報を格納するOpenSourceCategoryテーブル。
三つ目は、OpenSourceResourceとOpenSourceCategoryをつなぐリンクテーブルであるOpenSourceResourceCategoriesテーブル。
このように、Reactorではデータベース内のテーブルオブジェクト間のリレーションシップも定義できます。
<objects>
<object name="OpenSourceResource">
<hasMany name="OpenSourceCategory">
<link name="OpenSourceResourceCategories" />
</hasMany>
</object>
OpenSourceResourceは、複数のOpenSourceCategoryを持ち、それをつなぐリンクテーブルがOpenSourceResourceCategoriesということを示しています。
<object name="OpenSourceCategory">
<hasMany name="OpenSourceResource">
<link name="OpenSourceResourceCategories" />
</hasMany>
</object>
また、OpenSourceCategoryは、複数のOpenSourceResourceを持ち、それをつなぐリンクテーブルがOpenSourceResourceCategoriesということを示しています。
<object name="OpenSourceResourceCategories">
<hasOne name="OpenSourceResource">
<relate from="resourceID" to="resourceID" />
</hasOne>
<hasOne name="OpenSourceCategory">
<relate from="categoryID" to="categoryID" />
</hasOne>
</object>
OpenSourceResourceCategoriesは、1対1関係のOpenSourceResourceと OpenSourceCategoryを持ち、そのプライマリーキーと外部キーは、各々resourceID/resourceIDと categoryID/categoryIDであることを示しています。
</objects>
コメント