需要是有3种身份 A,B,C
注册之后成为A即普通用户
A需要填写一些相应的信息成为B或者C ,但是成为B或者C的所需要填写的信息完全不同。
这个时候我们该怎么设计呢?
我的思路是以A为基础,B或者C为扩展表,即扩展表B,表C
还需要一张标识用户身份的表
身份只能拥有一个。
那我在选取用户的时候怎么联合呢? 用存储过程作下判断么?
还是说我的设计本身就存在问题呢,求指教!
------解决方案--------------------
用户表(ID,name,类型)
信息B(ID,...)
信息C(ID,...)
所有用户都记入用户表。
普通用户:类型 = A
变更类型就设: 类型 = B 或 C,并添加 信息B/信息C 的记录
查询
SELECT a.*, b.*, c.*
FROM 用户表 a
LEFT JOIN 信息B b ON b.ID = a.ID
LEFT JOIN 信息C c ON c.ID = a.ID