Welcome toVigges Developer Community-Open, Learning,Share
Welcome To Ask or Share your Answers For Others

Categories

0 votes
4.5k views
in Technique[技术] by (71.8m points)

用户表结构设计咨询

请教各位大佬几个问题,不同用户类型,比如前台和后台用户、商家、供应商之类的,是每个用户单独一张表,还是公用一张用户表、只是用户表只存储认证相关字段、每个用户类型额外一张用户信息表?
谢谢!


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome To Ask or Share your Answers For Others

1 Answer

0 votes
by (71.8m points)

我的话,这样设计表结构

用户表: id,username,email,type_id,isactive // type_id作为外键关联用户类型
    示例:
    1  张三  [email protected]  1
    2  李四  [email protected]  2
    3  王五   [email protected]   3
    4  赵六   [email protected]  4
用户类型表:id,usertype
    示例:
    1   前台
    2   后台
    3   商家
    4   供应商

将用户类型抽取出来,用户信息共用一张表
这个其实是sql设计的要符合的范式要求。

简单说说,
如果每个用户类型的用户设计一张表,现在4个类型,那就是4张表,只要增加一个用户类型,那么就要增加一张表,表中的大部分属性也就是字段是相同,想想也能明白这样做很不妥。
相反如果将用户类型从中抽取出来,做用户类型表,用户信息作为一张表,那么就不会有这样的麻烦。
增加一个用户类型,也只是在用户类型表中增加一条记录,用户信息表用外键关联即可


与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…
Welcome to Vigges Developer Community for programmer and developer-Open, Learning and Share
...