设计具有多种用户类型的系统的最佳实践
best practice for designing system with multiple user type
我们的系统有两个主要角色:服务提供商和客户。提供方是医生、护士和护理人员等用户。客户方就是客户。所有用户类型都包含一些常见数据和一些不常见数据。在当前系统中,每个用户类型都有一个 table,对于普通数据,我们有一个用户 table。当前系统 ERD 是:
https://s4.uupload.ir/files/screenshot-20210710165449-1007x662_tpwd.png
在当前系统中,我们有很多 table,我们正在考虑减少它们。我们的愿景是将所有用户类型都集中在一个名为 User 的 table 中,而不是很多 table,我们有更多的列。当然在某些用户中,我们有不属于该用户类型的空单元格。
我有 4 个问题:
- 可以将客户和提供商带到 table 喜欢的用户吗?
- table 中的最佳列数是多少?
- 加载包含很多列的行或不同 table 之间的关系?
- 提供者类型应该是一个单独的 table 或者可以是一个枚举?
最好把所有用户都放在一个table。因此,当您检查登录时,出错的地方更少。选择用户时,您不需要使用 SELECT * FROM... 您可以使用 SELECT id, username, name FROM...
不要放太多列,如果在搜索或显示用户时有一些不需要的数据,可以用列table“user_meta”创建助手user_id, meta_key, user_id 和 meta_key 为主键的值
已回答前 2 个答案
如果蜜蜂不需要扩展其他类型,则提供者类型应为枚举。
我们的系统有两个主要角色:服务提供商和客户。提供方是医生、护士和护理人员等用户。客户方就是客户。所有用户类型都包含一些常见数据和一些不常见数据。在当前系统中,每个用户类型都有一个 table,对于普通数据,我们有一个用户 table。当前系统 ERD 是:
https://s4.uupload.ir/files/screenshot-20210710165449-1007x662_tpwd.png
在当前系统中,我们有很多 table,我们正在考虑减少它们。我们的愿景是将所有用户类型都集中在一个名为 User 的 table 中,而不是很多 table,我们有更多的列。当然在某些用户中,我们有不属于该用户类型的空单元格。
我有 4 个问题:
- 可以将客户和提供商带到 table 喜欢的用户吗?
- table 中的最佳列数是多少?
- 加载包含很多列的行或不同 table 之间的关系?
- 提供者类型应该是一个单独的 table 或者可以是一个枚举?
最好把所有用户都放在一个table。因此,当您检查登录时,出错的地方更少。选择用户时,您不需要使用 SELECT * FROM... 您可以使用 SELECT id, username, name FROM...
不要放太多列,如果在搜索或显示用户时有一些不需要的数据,可以用列table“user_meta”创建助手user_id, meta_key, user_id 和 meta_key 为主键的值
已回答前 2 个答案
如果蜜蜂不需要扩展其他类型,则提供者类型应为枚举。