主键问题

yingkk 2012-09-17 05:28:59
用ID自增编号为主键,还是用文本做主键? 有什么优缺点没?
用单个主键和组合主键效率上有区别?
...全文
98 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
以学习为目的 2012-09-17
  • 打赏
  • 举报
回复
使用单个主键和联合主键,查询上看你大频率查询的条件。

联合主键有缺点,再做外键引用的时候比较麻烦一点。
AcHerat 元老 2012-09-17
  • 打赏
  • 举报
回复
无论是int或是str型字段做主键都可以,重要的是做好表的优化设计,SQL语句的优化等。

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

单个主键和联合主键不能单独去论效率如何,要考虑到实际的应用环境,相关表之间的关联,也要多注意表在后期存在某些需求变动的情况,建议没有熟悉联合主键的话能不用就不用吧!
唐诗三百首 2012-09-17
  • 打赏
  • 举报
回复
这个主要看表的应用场景,各自有适合的情况.
一般来讲,推荐用组合主键.
以学习为目的 2012-09-17
  • 打赏
  • 举报
回复
举个例子,比如产品资料表,一般每个产品都会有一个产品编号,这个编号有一定的编号规则,也能保证是唯一的。应该抛弃自增ID列做主键的做法,而应该使用产品编号作为主键。这样以后查询等基于产品编号,符合常规情况。

34,872

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧