首页 新闻 会员 周边

用户表数据设计问题。

0
悬赏园豆:10 [已解决问题] 解决于 2015-02-02 15:26

一张用户表,一张用户详情表,其中用户详情表示关联了用户主表的主键的,即1对1的关系,

我现在碰到了一个问题,就是在设计用户详情表的时候,请看下面的图。

一个用户的用户详情可以是基本资料,联系方式等等,那我怎么去设计这张详情表比较好呢?

我是这么设计的。

用户详情表里面的详情类型就是下面的几大类。

但是现在又有一个问题,如果我把所有的字段都建立在同一张详情表里,必然会出现很多NULL的字段,比如我填写基本资料,那么联系方式等其他地方的数据就为NULL了。

比如详情类型0对应基本资料,1对应联系方式.....

另外主键都是用的36位的GUID码

有没有什么方法呢,求教各位大神!

KMSFan的主页 KMSFan | 初学一级 | 园豆:108
提问于:2015-02-01 11:08
< >
分享
最佳答案
0

这个要看情况而定.

1、严格说来,联系方式可能是支持多联系方式的,你如果要支持多联系方式,就不存在这个问题了。

2、其他的象教育情况、工作情况也是类似的,除非你就是一个大框让人填写。

3、很多NULL的字段其实也没有啥问题,你担心啥呢?

4、如果要担心,可以用两个、三个表的方式,进行一对一关联。

收获园豆:7
爱编程的大叔 | 高人七级 |园豆:30839 | 2015-02-01 11:27

你好,我有点不太懂,你所说的多联系方式是指的?

KMSFan | 园豆:108 (初学一级) | 2015-02-01 11:32

@KMSFan: 淘宝用过吧,多个送货地址。

多个工作经历、多个教育经历

教育,高中、初中、大学

爱编程的大叔 | 园豆:30839 (高人七级) | 2015-02-01 11:33
其他回答(2)
0

看你的界面的话,一般是这么设计:

1.主表不变,主键是用户ID,就是你说的GUID

2.为了方便读取各分类的资料,对每种资料建一个表,每张表的主键就是"用户ID" 

3.如果不想每种资料建一张表而是全部建在一张表里(就是你现在的情况),那就用联合主键,这张表里用 “用户ID”和“详情类型”建立联合主键。确保一个用户对应一种详情最多只有一条记录

收获园豆:2
nicky0227 | 园豆:1069 (小虾三级) | 2015-02-01 13:08
0

一般都是多表关联,就像爱编程的大叔举的例子一样,教育经验、工作经验这些都是一对多的关系。

收获园豆:1
晓菜鸟 | 园豆:2594 (老鸟四级) | 2015-02-02 15:23
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册