首页 新闻 会员 周边 捐助

关于设计表时的问题。

0
悬赏园豆:50 [待解决问题]

当一个表本身有个唯一字段,然而却把主键设为自动编号,这个时候自己编号有什么用?在操作时用自动编号操作还是用那个唯一字段?

刘思的主页 刘思 | 初学一级 | 园豆:150
提问于:2011-07-11 15:58
< >
分享
所有回答(5)
0

用唯一字段,建议。。

马战鹏 | 园豆:432 (菜鸟二级) | 2011-07-11 16:26
0

这个我觉得,还是要看你这个的具体业务需要,如果这个唯一字段要用于搜索的,那就用唯一字段来,但不要忘记把这个字段索引一下。

不然,还是用自动编号吧,其实,你既然有唯一字段了,把这个唯一字段当做主键就好了,没有必要再搞一个自动编号为主键

李.net | 园豆:730 (小虾三级) | 2011-07-11 16:54
0

关于这个看过一篇文章,说的是这样的情况:以前设计数据库,主键都是跟业务有关系的字段是主键,但是现在因为方便都用自动编号的一个字段用作ID、主键,到底用哪个好呢?没有一个固定的答案,而同时有两个这种字段,如果按数据库原理来说,是不是不符合?问题是,数据库原理里面要求一个数据库至少要满足第三范式才算一个数据比较完整的数据库,可大系统(我这是听说的,因为我也没见过像是TX,Baidu这种大架构,呵呵)有时候都不满足第二范式,也就是外键约束,而是在程序中维护数据完整性,我想这也是设计的难的地方吧,方案很多,不会取舍。。。

顾晓北 | 园豆:10898 (专家六级) | 2011-07-11 18:08
说得很好,不过平常我设计表比较多的还是用自动ID,因为拥有一致的键结构,查找逻辑缺陷容易
支持(0) 反对(0) 饮料 | 园豆:240 (菜鸟二级) | 2011-07-12 22:05
0

主键和业务数据不关联,另外你这个唯一很有可能不唯一,你不能保证100%的不修改,就连用户的工号都有可能修改,

这年头,需求是靠不住的。

LoveJenny | 园豆:532 (小虾三级) | 2011-07-14 06:40
0

你的问题,让我想到了我前几天做的标签系统,表的设计有id(主键,自增)、tag(唯一索引)......等。在具体业务里,基本的操作都是用id去做的。

但是当我拿到tag时要去查寻该记录的其他字段时,就直接用tag去查好了。总不会先去查他的id,然后再去查其他字段吧。

具体情景,具体实现,不必纠结于一个点的。

豆腐欣欣 | 园豆:76 (初学一级) | 2011-12-13 22:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册