Компания и контакты Объект Дизайн Помощь - PullRequest
3 голосов
/ 27 апреля 2009

Я надеюсь, что кто-то (или некоторые люди) могли бы помочь нам с проблемой, с которой мы столкнулись в течение нескольких дней. Как организовать наши бизнес-объекты с учетом прилагаемой схемы?

Мы ищем любую помощь (идеи о том, где или как искать шаблон (ы) проектирования / объектную модель (ы), которые мы могли бы использовать для решения этой проблемы. Наша ситуация немного сложнее, но мы постарался максимально упростить его, чтобы задать этот вопрос.

Некоторые детали: У некоторых компаний есть продуктовые линейки, а у некоторых нет.
У каждой компании есть список контактов. Если у компании есть хотя бы одна продуктовая линейка, некоторые из этих контактов компании ТАКЖЕ связаны с хотя бы одной линейкой продуктов.
Несколько контактов являются ссылками (деловыми / личными) для других контактов.
Каждая компания и каждый контакт может иметь ноль или более адресов.

Спасибо за любую помощь в поиске более подходящего решения (я предполагаю, что нам нужно будет использовать несколько моделей / моделей).

Entity Diagram

Изображение большего размера (flickr.com)

** (из диаграммы) В нашей компании есть сотрудники / пользователи внутренних приложений, которые включены в контакты, поскольку они также могут быть ссылками и т. Д.

Ответы [ 3 ]

1 голос
/ 27 апреля 2009

Вы можете использовать следующую объектную модель:

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 между их объектом и моделью данных, а некоторые хотят спроектировать свою схему данных на основе производительности, а затем имеют другое отображение абстракции между объектами и базой данных.

0 голосов
/ 27 апреля 2009

У нас похожая структура в нашем приложении, и она хорошо работает для нас. У нас есть две дополнительные таблицы

У нас есть концепция сайтов между компаниями и адресами, к которым люди могут прикрепить один или несколько сайтов в нашей схеме, что позволяет хранить тысячи дублированных адресов. Вы также можете ссылаться на адрес клиента напрямую в адресной книге.

Где вы храните контактную информацию?

0 голосов
/ 27 апреля 2009

Если вы пытаетесь создать базу данных, я бы сделал это следующим образом:

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. Это просто быстрый ответ, попробуйте обновить ваш вопрос, и я немного обновлю его.

...