用唯一字段,建议。。
这个我觉得,还是要看你这个的具体业务需要,如果这个唯一字段要用于搜索的,那就用唯一字段来,但不要忘记把这个字段索引一下。
不然,还是用自动编号吧,其实,你既然有唯一字段了,把这个唯一字段当做主键就好了,没有必要再搞一个自动编号为主键
关于这个看过一篇文章,说的是这样的情况:以前设计数据库,主键都是跟业务有关系的字段是主键,但是现在因为方便都用自动编号的一个字段用作ID、主键,到底用哪个好呢?没有一个固定的答案,而同时有两个这种字段,如果按数据库原理来说,是不是不符合?问题是,数据库原理里面要求一个数据库至少要满足第三范式才算一个数据比较完整的数据库,可大系统(我这是听说的,因为我也没见过像是TX,Baidu这种大架构,呵呵)有时候都不满足第二范式,也就是外键约束,而是在程序中维护数据完整性,我想这也是设计的难的地方吧,方案很多,不会取舍。。。
主键和业务数据不关联,另外你这个唯一很有可能不唯一,你不能保证100%的不修改,就连用户的工号都有可能修改,
这年头,需求是靠不住的。
你的问题,让我想到了我前几天做的标签系统,表的设计有id(主键,自增)、tag(唯一索引)......等。在具体业务里,基本的操作都是用id去做的。
但是当我拿到tag时要去查寻该记录的其他字段时,就直接用tag去查好了。总不会先去查他的id,然后再去查其他字段吧。
具体情景,具体实现,不必纠结于一个点的。