Промежуточная модель

Обсуждаем, как правильно строить приложения
Ответить
Wizard
Сообщения: 173
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

Промежуточная модель

Сообщение Wizard » 2019.11.29, 12:46

Доброго времени суток!

Пишу срм, есть интересная задача. Имеются контакты и компании. У них есть связь многие ко многим. Но промежуточная таблица имеет дополнительные поля и указатель на 3-ю сущность.

К кому поближе положить промежуточную модель - к контактам или к компаниями? Обе модели самостоятельные и могут существовать отдельно друг от друга.

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

В итоге я для себя на текущий момент решил сделать эту модель самостоятельной.

https://prnt.sc/q3r233
https://prnt.sc/q3r2fn

Каким было бы ваше идеальное решение?)

Аватара пользователя
ElisDN
Сообщения: 5451
Зарегистрирован: 2012.10.07, 10:24
Контактная информация:

Re: Промежуточная модель

Сообщение ElisDN » 2019.11.30, 13:27

Зависит от того, что важнее и как это в бизнесе устроено.

Если компания важнее, то можно поместить в компанию как здесь к проекту добавляется участник в определённые департаменты проекта с нужными ролями.

Wizard
Сообщения: 173
Зарегистрирован: 2018.02.05, 13:41
Контактная информация:

Re: Промежуточная модель

Сообщение Wizard » 2019.11.30, 13:56

ElisDN писал(а):
2019.11.30, 13:27
Зависит от того, что важнее и как это в бизнесе устроено.

Если компания важнее, то можно поместить в компанию как здесь к проекту добавляется участник в определённые департаменты проекта с нужными ролями.
Да, я как раз на эту структуру и ориентируюсь. И все шло прекрасно, но в данном случае получается так что и контакты и компании самостоятельные сущности (могут существовать друг без друга) и между ними есть некий "мост". Его не воткнуть ни к компаниям ни к контактам.

на текущий момент сделал следующую структуру

--Associations
----CompanyContact
------Entity
--Company
----Entity
--Contact
----Entity

Сущность CompanyContact
- company
- contact
- direction
- division
- position

--------

К примеру
в контактах вывожу список компаний contact->companies
в компаниях вывожу список контактов company->contacts

но в обоих случаях я обращаюсь к одной и той же сущности. Забавно получаеться но название сущности зависит от того кто ее вызывает)) Потому в моем случае она называется CompanyContact

--------

после того как у этой модели появилось свое "место жительства" стало проще ее воспринимать.

anton_z
Сообщения: 453
Зарегистрирован: 2017.01.15, 15:01

Re: Промежуточная модель

Сообщение anton_z » 2019.12.02, 02:33

В итоге я для себя на текущий момент решил сделать эту модель самостоятельной.
Я бы тоже самостоятельной сущностью сделал и использовал бы и там и там. DRY.

Ответить