<< 朽ちていくD51 | main | 関心事は、エンタープライズアプリケーション >>

関連の設計と実装



オーダーと明細のモデル。

明細は、最低一行ないといけない、というのがビジネスルール。(構造ルール)




Java で実装すると、 Order クラスが、 List コレクションへの参照を持つ。
明細が最低一行必須、というビジネスルールは、メソッドで実装する。




同じモデルをテーブルで実装する。
参照が逆転しちゃいますね。

Java だと、Order クラスが List を知っている。 List は、 Order クラスを知らない。

Order テーブルは、Item テーブルへの情報を持たないけど、Item テーブルは、Order Number を参照している。(外部キー参照)

参照の逆転

マーチンファウラーのPoEAA にでてくる外部キーマッピングですね。
もっとも、PoEAA では、このパターン(コレクションへの単方向の参照)は、依存マッピングを推奨している。

このテーブルモデルは、Item の主キーである object_oid の扱い方の問題。

依存マッピングでは、
・object_oid での検索はしない。( Item を単独で検索はしない )
・テーブルの主キーの object_oid は、 Java のオブジェクトでは持たない ( 一意フィールドを持たない)
という実装をする。

同じモデルを、Java で実装するのと、テーブルで実装するのでは、参照関係が逆転。この逆転構造を、マッピングする課題を検討しているのが、PoEAA 12章 O-R 構造パターン、というわけだ。

コメント
コメントする









この記事のトラックバックURL
トラックバック
calendar
 123456
78910111213
14151617181920
21222324252627
28293031   
<< May 2017 >>
システム設計日記を検索
プロフィール
リンク
システム開発日記(実装編)
有限会社 システム設計
twitter @masuda220
selected entries
recent comment
recent trackback
categories
archives
others
mobile
qrcode
powered
無料ブログ作成サービス JUGEM