我正在尝试在一个帐户可以拥有的两个角色(“用户”和“公司”)之间取得最佳联系。我要在这些之间做出决定:
如果某人要注册,则他/她需要在要使用的角色之间进行选择,然后填写其余字段。例如,如果我注册为用户,则字段“ companyId”将为空,而我不希望那样...
这里也是一样,如果我注册为公司,则需要填写必填字段,仅此而已,但是如果收到任何反馈或放置了项目,则“ userId”字段为空。
答案 0 :(得分:1)
第一个肯定会提出一些问题。
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
定义的。 / p>
还要考虑以下每种关系的基数:
还有一些要考虑的一般问题:
Project
是弱还是 strong 实体?”)?