日期:2014-05-17  浏览次数:20688 次

主键问题
用ID自增编号为主键,还是用文本做主键? 有什么优缺点没?
用单个主键和组合主键效率上有区别?

------解决方案--------------------
举个例子,比如产品资料表,一般每个产品都会有一个产品编号,这个编号有一定的编号规则,也能保证是唯一的。应该抛弃自增ID列做主键的做法,而应该使用产品编号作为主键。这样以后查询等基于产品编号,符合常规情况。
------解决方案--------------------
这个主要看表的应用场景,各自有适合的情况.
一般来讲,推荐用组合主键.

------解决方案--------------------
无论是int或是str型字段做主键都可以,重要的是做好表的优化设计,SQL语句的优化等。

对于联合主键来说,会自动生成复合索引,这点楼主在写查询SQL语句时注意where的条件。考虑到后台程序和数据库的连接,那么会增加程序的复杂度,例如需要传多个参数,查询时需要关联多个字段,以及一些WEB端的分页(SQL2000较复杂)。

单个主键和联合主键不能单独去论效率如何,要考虑到实际的应用环境,相关表之间的关联,也要多注意表在后期存在某些需求变动的情况,建议没有熟悉联合主键的话能不用就不用吧!
------解决方案--------------------
使用单个主键和联合主键,查询上看你大频率查询的条件。

联合主键有缺点,再做外键引用的时候比较麻烦一点。