2009-04-27 15 views
3

私は数日間悩まされている問題について、誰か(または何人か)が私たちを助けてくれることを期待しています。どのように添付図面を与えて私たちのビジネスオブジェクトを整理する?会社と連絡先オブジェクト設計ヘルプ

私たちは、この問題を解決するために使用できるデザインパターン/オブジェクトモデルの場所や検索方法についての援助を求めています。我々は、この質問をする目的のために、我々はできる最善のそれを簡素化しようとしてい

をいくつかの詳細:。 一部の企業は、製品ラインを持っているし、いくつかにはない
各企業は、連絡先のリストを持っている会社が持っている場合。 一部の連絡先は、他の連絡先の参照(ビジネス/個人)です。
各企業および各連絡先には、0個以上の住所を付けることができます。

より適切な解決策を見つけるお手伝いをしていただきありがとうございます(私は、複数のモデル/パターンを使用する必要があると想定しています)。 (図から)

Entity Diagram

Larger view of diagram (flickr.com)

**あなたがいる場合当社は、彼らはまた、参照することができるので、連絡先に含まれている従業員/内部アプリケーションユーザーなど

+0

あなたは正確に何をしようとしていますか?データベース? – marcgg

+0

これは何が問題なのですか?それは素晴らしいようです。 –

答えて

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を使用することをお勧めします。それはただの簡単な答えです。あなたの質問を更新してみてください。少し更新します。

+0

データベースは従来のもので、この時点では変更できません。私たちは、ビジネスオブジェクトを作成しようとしています。実績のある設計パターン、または2つ(または試行錯誤したオブジェクトモデル)を見つけた可能性のある人物を探していました。フローダイアグラムは設計が簡単でした。問題/疑問だけのソリューションを提案したくはありません。 –

0

私たちのアプリケーションにも同様の構造があり、私たちにとってはうまく機能します。 2つの余分なテーブルがあります

私たちは、会社と住所の間にサイトという概念を持ち、人々は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) 

あなたは私が考えることができる。この基本モデル上に構築することができます

+0

u07ch、ありがとうございます。テーブルは良好な形になっているように見えます(適切に正規化されています)。主に私たちの関心事は、プロジェクトのビジネスオブジェクト領域です。 –

1

は、次のオブジェクトモデルを使用することができます。あなたはデータスキーマを持っていますか?もしそうなら、あなたはどこから始めるべきかを決めるべきです。オブジェクトとデータモデルの間に1-1のマッピングがあり、パフォーマンスに基づいてデータスキーマを設計し、オブジェクトとデータベース間の別の抽象マッピングを使用する人もいます。

関連する問題