具有两个角色的帐户之间的关系的最佳做法是什么?

问题描述 投票:0回答:1

我正在尝试在一个帐户可以拥有的两个角色(“用户”和“公司”)之间取得最佳联系。我要在这些之间做出决定:

[如果有人要注册,他/她需要在要使用的角色之间进行选择,然后填写其余字段。例如,如果我注册为用户,则字段“ companyId”将为空,并且我不希望这样做...

enter image description here

这里也是一样,如果我注册为公司,则需要填写必填字段,仅此而已,但是如果收到任何反馈或放置了项目,则“ userId”字段为空。

enter image description here

那么,这样做的最佳实践是什么?您可以阅读UserCompany需要填写的完整“字段”。

database entity-relationship entity-relationship-model
1个回答
0
投票

肯定是第一个问题。

  • 为什么将account建模为feedbackproject的子代?
  • 类似地,为什么usercompany都将是account的子实体?

[我认为这些关系是倒退的:请改为“用户有帐户”,而不是“有帐户的用户”。将其应用于Account --> FeedbackAccount --> Project:对帐户提供反馈,并且项目与帐户绑定。这与您在第二张图中所做的接近,但是那里也存在一些问题:

  • 如何处理CompanyCompany真的是与User分开的实体吗?还是它们之间有关系?
  • Account在第二张图中的哪里?

我会提出这样的建议(需要使用正确的键来更新字段,但是关系是重要的部分):

Diagram

这允许UserCompany都具有Account。它还允许将User分配给CompanyAccount属于UserCompany,并且ProjectFeedback均根据Account定义。

© www.soinside.com 2019 - 2024. All rights reserved.