3

誰か (または何人か) が、私たちが数日間格闘してきた問題を解決してくれることを願っています。添付の図を使用して、ビジネス オブジェクトをどのように整理しますか?

この問題を解決するために使用できるデザインパターン/オブジェクトモデルをどこで、またはどのように検索するかについてのアイデアを探しています。私たちの状況は少し複雑ですが、私たちはしようとしましたこの質問をするために、できる限り単純化してください。

いくつかの詳細: 一部の企業には製品ラインがあり、一部の企業にはありません。
各会社には連絡先のリストがあります。会社に少なくとも 1 つの製品ラインがある場合、それらの会社の連絡先の一部は、少なくとも 1 つの製品ラインにも関連付けられています。
連絡先のいくつかは、他の連絡先の参照 (ビジネス/個人) です。
各会社および各連絡先には、0 個以上のアドレスを指定できます。

より適切な解決策を見つけるための支援に感謝します (複数のモデル/パターンを使用する必要があると思います)。

エンティティ図

図の拡大 (flickr.com)

** (図より) 当社には、参考文献などにもなりうるため、連絡先に含まれる従業員/社内アプリケーション ユーザーがいます。

4

3 に答える 3

1

次のオブジェクト モデルを使用できます。

Organization
-id
-name
-description
-productLines ( collection object consisting of products)
-orgcontacts ( collection object consisting of contacts)
-addresses (of type Address, can be a collection depends on business rule)

Contact
-id
-name
-type (Business, personal, etc)
-parentID (null if no reference)
-adresses (Address or collection)

ProductLine
-id
-name
-prLineContacts ( collection object consisting of contacts)

私が考えることができるこの基本モデルに基づいて構築できます。データスキーマはありますか? もしそうなら、どこから始めるべきかを決める必要があります。オブジェクトとデータ モデル間の 1 対 1 のマッピングが好きな人もいれば、パフォーマンスに基づいてデータ スキーマを設計し、オブジェクトとデータベース間の別の抽象化マッピングを持ちたい人もいます。

于 2009-04-27T16:38:09.670 に答える
0

データベースを設計しようとしている場合は、次のようにします。

Companies = [id, name]
Contacts = [id, name]
Products = [id, name]
Adresses = [id, details]

CompaniesContacts = [contact_id, company_id]
CompaniesProducts = [product_id, company_id]
AdressesContacts = [contact_id, address_id]

References = [contact_id, referenced] // referenced is also a contact_id

また、UML の使用をお勧めします。簡単な回答です。質問を更新してみてください。少し更新します。

于 2009-04-27T16:36:22.293 に答える
0

アプリケーションにも同様の構造があり、うまく機能します。追加のテーブルが 2 つあります

会社とアドレスの間のサイトの概念があり、スキーマ内の 1 つ以上のサイトにユーザーを関連付けることができ、何千もの重複したアドレスを保存する必要がありません。アドレス帳でクライアント アドレスを直接参照することもできます。

連絡先の詳細をどこに保存していますか?

于 2009-04-27T16:37:48.627 に答える