数据库设计时采用自动编号 ID 加业务名称字段联合主键,一般是出于什么考虑?

R_zhanche 2011-09-16 08:14:37
数据库设计时采用自动编号 ID 加业务名称字段联合主键,一般是出于什么考虑?
...全文
292 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
R_zhanche 2011-10-11
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 fredrickhu 的回复:]

设置主键的目的就是保持唯一性

而很多时候用自增列是为了在程序中方便使用 select @@identity 来捕捉行号

这样在分页或者其他一些需要使用的地方比较方便
[/Quote]

联合主键一般怎么能最大限度的发挥主键的作用?
--小F-- 2011-09-16
  • 打赏
  • 举报
回复
设置主键的目的就是保持唯一性

而很多时候用自增列是为了在程序中方便使用 select @@identity 来捕捉行号

这样在分页或者其他一些需要使用的地方比较方便
dawugui 2011-09-16
  • 打赏
  • 举报
回复
[Quote=引用楼主 r_zhanche 的回复:]
数据库设计时采用自动编号 ID 加业务名称字段联合主键,一般是出于什么考虑?
[/Quote]
主要是怕业务名称重复,所以使用一个自动编号,这样就不会出现重复.
Lemon2050 2011-09-16
  • 打赏
  • 举报
回复
联合主键,通常出现在单个键值不具备唯一性的前提下,也就是说如果只是使用其中一个键值的话,不能保证唯一性。楼主这种情况id已经自动编号了,其实没必要再使用业务名称作为联合主键了。

至于索引的问题,其实索引是可以被删除,也是可以被创建的,即使不使用联合主键,也是可以为 该字段 创建索引的。

至于为什么采用这种联合主键方式,老实说,其实并没有必要,可能是为了数据之间联系的清晰吧,把ID只是作为名义上的主键,而业务名称才是真正出现在别的表里的字段,这样该表和其它表之间的联系将更清晰。如果在其它表中使用ID来和该表建立联系的话,可能看起来不太清晰,不直观。

-晴天 2011-09-16
  • 打赏
  • 举报
回复
由于自动编号字段总是唯一的,这样,如果业务名称字段不具有唯一性的话,创建联合主键可以保证唯一性,且能对不同业务设置索引.
bitls 2011-09-16
  • 打赏
  • 举报
回复
一般一个表是要一个主键的,这样可以在处理重复记录时,方便记录定位,分页时也容易定位
如果你的表中本来有可以做主键的字段,比如员工编号,则这个id一般没有必要加.业务名称字段联合主键为索引

22,207

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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