目前前台用户共有 3 个角色类型,以下我们统称为普通会员,高级会员,超级会员
他们共有几个相同的字段:账号,手机号,性别等等,但其中一些角色拥有自己特定的属性
所以我现在想要不要分表设计,统一用 user 表存全部用户,包括他们的角色类型,然后在建两个高级会员和超级会员的信息表去做其他属性保存
求做过的大佬给个好点的设计方案
1
wangritian 2020-10-15 11:17:09 +08:00
你的方案没问题,如果高级 /超级会员的附加属性没有搜索需求,也可以丢 user 表的一个 json 字段
|
2
totoro52 OP @wangritian 有附加搜索需求的, 我想的是在建一个用户类型表,user 包含类型 Id 然后查询的时候连表带上需要的字段 但感觉有点繁琐
|
3
hytex 2020-10-15 11:29:01 +08:00
是否还要考虑会员失效,其他表也要对应删除的情况呢。特定属性如果不多的话,我个人比较喜欢放在一张表里
|
4
teddy2725 2020-10-15 11:30:34 +08:00
把 user 和 profile 分开,普通会员 高级会员 和超级会员用 role 区分
|
5
totoro52 OP @hytex 对 我想到的就是这个 如果放其他表 那用户被删掉的时候 其他表也要做相应操作 不过目前是实现的是软删除 所以应该不会涉及到其他表
|
6
1010011010 2020-10-15 11:42:59 +08:00
多个 1 对 1 我是分多个子表,子表主键不自增用主表主键,主表做状态标识
|
7
vate32 2020-10-15 12:18:02 +08:00
经典五张表:用户表,角色表,权限表,用户与角色关联表,角色与权限关联表
|
9
armoni 2020-10-15 12:45:34 +08:00
都做到一张表里,根据不同的权限提取不同的字段
|
10
dk7952638 2020-10-15 13:52:24 +08:00
如果只是多几个字段不要分表,如果区别很大再考虑
如无必要,勿增实体 |
11
libracloud 2020-10-15 13:57:34 +08:00
我是直接一个表,附加信息用 json 保存的
|