![](https://blogimg.goo.ne.jp/user_image/10/01/4e1c68a2195d0020c61f27d844269fdc.png)
取引については、「どの取引先から受注したのか」、「どの取引先に請求すればいいのか」等の取引先との関連を管理する必要があります。このような取引と取引先の関連を管理する方法については、いくつかの方法が存在します。以下に取引と取引先の関連(パターン)について説明していきます。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【リレーションによる管理(取引先マスタからのリレーションによる管理)】
取引は取引先との関係を持ちます。取引の基本構造で記述したように、基本的には取引と取引先には1対Nの参照関係が存在すると考えてよいでしょう。
(図1)取引の基本構造
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【エンティティによる管理】
しかし、図1の構造では取引先と取引の関係を1つだけしか管理できません。取引と取引先の関連と一口にいっても様々な関係があります。例えば、受注先、納入先、請求先、入金元、発注先、入荷元、支払先・・・です。
これらの取引先の関連を管理しようとすると、関連の種類ごとに複数のリレーションを定義する必要が出てきます。
(図2)複数の取引先関連管理
管理すべき関係が固定であれば、このような形で定義していても問題はないかもしれませんが、取引先と取引(受注等)との関係で新たに管理したい関連が増えたといった場合は、リレーションを追加する必要があります。
取引と取引先の関係を考えてみると、ある取引先は複数の受注の得意先になっていると同時に、別の受注の請求先になっているかもしれません。
また、取引(受注)からみた場合は、受注先・請求先・納品先等の情報を管理する必要がある場合もあるでしょう。
そのような場合は、取引(受注)からみて取引先が複数存在し、取引先からみても取引(受注)が複数存在することになるので、取引(受注)と取引先との間にはN対Mの関係が存在することになります。
そこで“取引先”と“取引”の中間(関連)エンティティとして“取引先関連”を追加し、1対Nの関係に分解します。
(図3)複数の取引と取引先の関連
受注取引先関連のイメージを以下に示します。
(図4)取引先関連のテーブルイメージ
1行目と2行目は受注「0001」について「ABC株式会社 本社」と「ABC株式会社 大阪支店」が関連しているということを表現しています。また、3行目と4行目では、受注「0002」について「XYZ商事」と「工事現場A1」が関係しているということを表現しています。
しかし、上記の図4の「受注取引先関連」では、ある受注にどの取引先が係わっているのかは管理できますが、各取引先がどのような取引関係(役割/責任)でその取引(受注)に関係しているのかは把握することができません。
そこで、各組織(取引先)がどのような役割でその受注に係わっているのかを“取引関連タイプ”で管理します。
受注取引先関連の役割/責任としてどのようなものが存在するのか“取引関連タイプ”で管理し、各取引先がどのような役割で各受注に関連しているのかを管理するために、“取引関連タイプ”との間に以下の関係を定義します。
(図5)取引先との関係を考慮したモデル
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
【取引と取引先関連のパターン整理】
(図6)取引と取引先関連のパターン
①リレーションによる管理
“取引”エンティティと“取引先”エンティティの間に関連を定義することにより、取引先との関係を管理します。
②エンティティによる管理
取引に対して複数の取引先が担当している場合がありますし、逆にある取引先は複数の取引に関係しているということが考えられますので、“取引”と“取引先”との間にはN対M関係が存在することになります。そこで、中間(関連)エンティティを追加し管理します。
※コメント投稿者のブログIDはブログ作成者のみに通知されます