合格的多对多参与者

时间:2018-09-08 00:58:00

标签: sql database orm theory

想象一个场景,它是一个很好的例子,它是任意选择的:

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个客户服务代表,我们就无法拥有一家公司。

有什么方法可以在数据库级别(使用现有结构或备用结构)强制执行此操作,还是纯粹是一个应用程序逻辑问题?

有兴趣知道是否有针对此类问题的最佳解决方案,而与所使用的技术无关。

0 个答案:

没有答案