представьте себе сценарий, выбранный произвольно, поскольку он является хорошим примером:
company
id
name
...
contact
id
first_name
last_name
...
role
id
name
...
Теперь, создавая отношения «многие ко многим», в которых контакты связаны с компаниями, играющими определенную роль (не обращая внимания на какие-либо неотъемлемые отношения между компаниями и контактами на мгновение), мы должны иметь возможность создать таблицу, такую как:
company_contact_role
company_id
contact_id
role_id
, что даст нам отношения контактов в ролях в компаниях. пока все хорошо.
сейчас; представьте себе роль ceo
и роль customer service
среди многих других, а также ограничение, что у нас не может быть компании, если у них нет и генерального директора, и, скажем, как минимум 3 представителя по обслуживанию клиентов.
есть ли способ применить это на уровне базы данных (либо с существующей структурой, либо с альтернативной структурой), или это чисто логический вопрос приложения?
интересно знать, есть ли лучшее в своем классе решение для такого рода проблем, независимо от используемой технологии.