前台多用户类型该如何设计数据库呢?

2020-10-15 11:09:06 +08:00
 totoro52

目前前台用户共有 3 个角色类型,以下我们统称为普通会员,高级会员,超级会员
他们共有几个相同的字段:账号,手机号,性别等等,但其中一些角色拥有自己特定的属性
所以我现在想要不要分表设计,统一用 user 表存全部用户,包括他们的角色类型,然后在建两个高级会员和超级会员的信息表去做其他属性保存
求做过的大佬给个好点的设计方案

3468 次点击
所在节点    MySQL
11 条回复
wangritian
2020-10-15 11:17:09 +08:00
你的方案没问题,如果高级 /超级会员的附加属性没有搜索需求,也可以丢 user 表的一个 json 字段
totoro52
2020-10-15 11:26:04 +08:00
@wangritian 有附加搜索需求的, 我想的是在建一个用户类型表,user 包含类型 Id 然后查询的时候连表带上需要的字段 但感觉有点繁琐
hytex
2020-10-15 11:29:01 +08:00
是否还要考虑会员失效,其他表也要对应删除的情况呢。特定属性如果不多的话,我个人比较喜欢放在一张表里
teddy2725
2020-10-15 11:30:34 +08:00
把 user 和 profile 分开,普通会员 高级会员 和超级会员用 role 区分
totoro52
2020-10-15 11:31:54 +08:00
@hytex 对 我想到的就是这个 如果放其他表 那用户被删掉的时候 其他表也要做相应操作 不过目前是实现的是软删除 所以应该不会涉及到其他表
1010011010
2020-10-15 11:42:59 +08:00
多个 1 对 1 我是分多个子表,子表主键不自增用主表主键,主表做状态标识
vate32
2020-10-15 12:18:02 +08:00
经典五张表:用户表,角色表,权限表,用户与角色关联表,角色与权限关联表
totoro52
2020-10-15 12:23:21 +08:00
@vate32 这里不是权限的问题 而是用户类型包含的属性的问题
armoni
2020-10-15 12:45:34 +08:00
都做到一张表里,根据不同的权限提取不同的字段
dk7952638
2020-10-15 13:52:24 +08:00
如果只是多几个字段不要分表,如果区别很大再考虑
如无必要,勿增实体
libracloud
2020-10-15 13:57:34 +08:00
我是直接一个表,附加信息用 json 保存的

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/715139

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX