一张用户表,一张用户详情表,其中用户详情表示关联了用户主表的主键的,即1对1的关系,
我现在碰到了一个问题,就是在设计用户详情表的时候,请看下面的图。
一个用户的用户详情可以是基本资料,联系方式等等,那我怎么去设计这张详情表比较好呢?
我是这么设计的。
用户详情表里面的详情类型就是下面的几大类。
但是现在又有一个问题,如果我把所有的字段都建立在同一张详情表里,必然会出现很多NULL的字段,比如我填写基本资料,那么联系方式等其他地方的数据就为NULL了。
比如详情类型0对应基本资料,1对应联系方式.....
另外主键都是用的36位的GUID码
有没有什么方法呢,求教各位大神!
这个要看情况而定.
1、严格说来,联系方式可能是支持多联系方式的,你如果要支持多联系方式,就不存在这个问题了。
2、其他的象教育情况、工作情况也是类似的,除非你就是一个大框让人填写。
3、很多NULL的字段其实也没有啥问题,你担心啥呢?
4、如果要担心,可以用两个、三个表的方式,进行一对一关联。
你好,我有点不太懂,你所说的多联系方式是指的?
@KMSFan: 淘宝用过吧,多个送货地址。
多个工作经历、多个教育经历
教育,高中、初中、大学
看你的界面的话,一般是这么设计:
1.主表不变,主键是用户ID,就是你说的GUID
2.为了方便读取各分类的资料,对每种资料建一个表,每张表的主键就是"用户ID"
3.如果不想每种资料建一张表而是全部建在一张表里(就是你现在的情况),那就用联合主键,这张表里用 “用户ID”和“详情类型”建立联合主键。确保一个用户对应一种详情最多只有一条记录
一般都是多表关联,就像爱编程的大叔举的例子一样,教育经验、工作经验这些都是一对多的关系。