当前位置: 代码迷 >> Sql Server >> 怎么设计表呢
  详细解决方案

怎么设计表呢

热度:78   发布时间:2016-04-24 10:07:33.0
如何设计表呢
需要是有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
  相关解决方案