3

我希望有人(或某些人)可以帮助我们解决我们已经争论了几天的问题。给定附图,如何组织我们的业务对象?

我们正在寻找任何帮助(关于在哪里或如何搜索我们可以用来解决这个问题的设计模式/对象模型的想法。我们的情况稍微复杂一些,但我们试图为了问这个问题,我们尽可能地简化它。

一些细节:有些公司有产品线,有些没有。
每个公司都有一个联系人列表。如果一家公司至少有一个产品线,那么其中一些公司联系人也与至少一个产品线相关联。
一些联系人是其他联系人的参考(业务/个人)。
每个公司和每个联系人可以有零个或多个地址。

感谢您在寻找更合适的解决方案时提供的任何帮助(我的假设是我们将需要使用多个模型/模式)。

实体图

图的大图 (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

我们的应用程序中有一个类似的结构,它对我们很有效。我们有两张额外的桌子

我们有公司和地址之间的站点的概念,人们可以在我们的架构中附加一个或多个站点,这样可以节省存储数千个重复地址。您也可以直接在地址簿中引用客户端地址。

您在哪里存储联系方式?

于 2009-04-27T16:37:48.627 回答