具有两个角色的帐户之间的关系的最佳做法是什么?
What is the best practice for a Relation between Accounts with two roles?
我正在尝试获得一个帐户可以拥有的两个角色之间的最佳关系,即 "User" 和 "Company"。我在这些之间做出决定:
如果有人要注册,he/she 需要选择要使用的角色,然后填写其余字段。例如,如果我注册为用户,"companyId" 字段将为空,我不希望这样...
这里也一样,如果我注册为公司,我需要填写必填字段就这样,但是字段"userId"是空的,以防我收到任何反馈或者我把我的项目.
第一个确实提出了一些问题。
- 为什么
account
被建模为 feedback
和 project
的 child?
- 同样,为什么
user
和 company
都是 account
的 child 个实体?
我认为这些关系是倒退的:不是 "Accounts have users" 而是 "Users have accounts"。对 Account --> Feedback
和 Account --> Project
应用相同的方法:反馈是在帐户上给出的,项目与帐户相关联。这与您在第二张图中所做的很接近,但也有一些问题:
Company
怎么办? Company
真的 是与 User
不同的实体吗?或者他们之间有什么关系?
- 第二张图中
Account
的位置?
我建议这样(字段需要使用正确的键更新,但关系是重要的部分):
这允许 User
和 Company
都具有 Account
。它还允许将 User
分配给 Company
。 Account
属于User
或Company
,Project
和Feedback
都是根据Account
定义的。
还要考虑以下每个关系的基数:
- 一个用户可以关联超过 1 个公司吗?必须将所有 用户分配给一家公司吗?
- 公司能没有用户吗?
- 一个帐户是否只有 1 个所有者?它可以同时由用户和公司拥有吗?它能没有主人吗?
还有一些需要考虑的更一般的问题:
- 项目是否独立于帐户存在(这可能表述为 "is
Project
a weak or a strong entity?")?
- 反馈真的适用于帐户吗?或者反馈实际上是 User/Company 的 属性?
我正在尝试获得一个帐户可以拥有的两个角色之间的最佳关系,即 "User" 和 "Company"。我在这些之间做出决定:
如果有人要注册,he/she 需要选择要使用的角色,然后填写其余字段。例如,如果我注册为用户,"companyId" 字段将为空,我不希望这样...
这里也一样,如果我注册为公司,我需要填写必填字段就这样,但是字段"userId"是空的,以防我收到任何反馈或者我把我的项目.
第一个确实提出了一些问题。
- 为什么
account
被建模为feedback
和project
的 child? - 同样,为什么
user
和company
都是account
的 child 个实体?
我认为这些关系是倒退的:不是 "Accounts have users" 而是 "Users have accounts"。对 Account --> Feedback
和 Account --> Project
应用相同的方法:反馈是在帐户上给出的,项目与帐户相关联。这与您在第二张图中所做的很接近,但也有一些问题:
Company
怎么办?Company
真的 是与User
不同的实体吗?或者他们之间有什么关系?- 第二张图中
Account
的位置?
我建议这样(字段需要使用正确的键更新,但关系是重要的部分):
这允许 User
和 Company
都具有 Account
。它还允许将 User
分配给 Company
。 Account
属于User
或Company
,Project
和Feedback
都是根据Account
定义的。
还要考虑以下每个关系的基数:
- 一个用户可以关联超过 1 个公司吗?必须将所有 用户分配给一家公司吗?
- 公司能没有用户吗?
- 一个帐户是否只有 1 个所有者?它可以同时由用户和公司拥有吗?它能没有主人吗?
还有一些需要考虑的更一般的问题:
- 项目是否独立于帐户存在(这可能表述为 "is
Project
a weak or a strong entity?")? - 反馈真的适用于帐户吗?或者反馈实际上是 User/Company 的 属性?