2009-04-27 52 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对象和数据模型之间的映射,有些人希望根据性能设计他们的数据模式,然后在对象和数据库之间有另一个抽象映射。