2009-04-27 40 views
3

我希望有人(或某些人)能夠幫助我們處理我們已經爭執了幾天的問題。鑑於附圖,如何組織我們的業務對象?公司與聯繫人對象設計幫助

我們正在尋找任何幫助(關於在哪裏或如何搜索我們可以用來解決這個問題的設計模式/對象模型的想法。我們的情況稍微複雜一些,但我們試圖最好的,我們可以簡化它問這個問題的目的

一些細節: 有些公司的產品線和一些不
每家公司都有聯繫人列表如果一家公司。至少一條產品線,其中一些公司聯繫人也與至少一條產品線相關聯
一些聯繫人是其他聯繫人的參考(業務/個人)
每個公司和每個聯繫人可以有零個或多個地址。

感謝您尋求更合適解決方案的任何幫助(我的假設是我們需要使用多個模型/模式)。

Entity Diagram

Larger view of diagram (flickr.com)

**(從圖表)公司擁有包括與誰接觸,因爲他們也可以參考員工/內部應用程序的用戶,等

+0

你究竟想要做什麼?一個數據庫? – marcgg 2009-04-27 16:31:51

+0

這是怎麼回事?看起來不錯。 – 2009-04-27 16:41:43

回答

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

數據庫是遺留的,現在不能更改。我們正在嘗試創建業務對象我們希望找到一個可能遇到過一個經過驗證的設計模式或兩個(或者嘗試過的和真正的對象模型)的人。流程圖在設計上更簡單 - 我們不想提出解決方案,只是問題/問題 – 2009-04-29 01:05:55

0

我們的應用程序中有類似的結構,對我們來說效果很好。 我們有兩個額外的表

我們有公司和地址之間的網站的概念人們可以在我們的模式中附加一個或多個網站,並保存存儲成千上萬的重複地址。您也可以直接在地址簿中引用客戶端地址。

你在哪裏儲存聯繫方式?

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對象和數據模型之間的映射,有些人希望根據性能設計他們的數據模式,然後在對象和數據庫之間有另一個抽象映射。