我正在尝试在一个帐户可以拥有的两个角色(“用户”和“公司”)之间取得最佳联系。我要在这些之间做出决定:
[如果有人要注册,他/她需要在要使用的角色之间进行选择,然后填写其余字段。例如,如果我注册为用户,则字段“ companyId”将为空,并且我不希望这样做...
这里也是一样,如果我注册为公司,则需要填写必填字段,仅此而已,但是如果收到任何反馈或放置了项目,则“ userId”字段为空。
肯定是第一个问题。
account
建模为feedback
和project
的子代?user
和company
都将是account
的子实体?[我认为这些关系是倒退的:请改为“用户有帐户”,而不是“有帐户的用户”。将其应用于Account --> Feedback
和Account --> Project
:对帐户提供反馈,并且项目与帐户绑定。这与您在第二张图中所做的接近,但是那里也存在一些问题:
Company
?Company
真的是与User
分开的实体吗?还是它们之间有关系?Account
在第二张图中的哪里?我会提出这样的建议(需要使用正确的键来更新字段,但是关系是重要的部分):
这允许User
和Company
都具有Account
。它还允许将User
分配给Company
。 Account
属于User
或Company
,并且Project
和Feedback
均根据Account
定义。