数据库实体主键用自增id还是自定义?

铂金小虫 发布于 2013/09/12 09:25
阅读 3K+
收藏 1

如果用自增id的话,如果删除后,之后需要转移数据什么,在新数据里就不能对应上了,而自定义的就没有这个问题。

如果是自定义的,那是用什么策略呢?像osc文章的44123这种,是自增长的还是自定义的?

加载中
0
南湖船老大
南湖船老大

数据库主键一般就两种策略,一种是MySQL的自增字段,一种是oracle那样的序列。

据我所知,目前主流数据库,oracle,SQL Server,PostgreSQL都用的序列,当然mysql也可以模拟序列。

应用场景不同,一般自增主键就足够了,没必要想那么多。需要主键需要有明确的含义,那就是序列比较好

0
ForEleven
ForEleven
自定义的话,uuid用的比较多点
0
l
littledoo

自定义id主要是能利用特定的的格式来存储更多信息,后续可以方便使用,不用去拉表。
如果有这种需求的时候就自定义,没有的话自增也是很方便的。

一般来说,程序中的静态的基础的数据用自定义id,而由动态产生的数据用自增id。

铂金小虫
铂金小虫
回复 @littledoo : 恩,应该是自增的,主要论坛这种流量大,像企业也用的话用户id什么的一般也就1000以内。
l
littledoo
回复 @铂金小虫 : AnchorAnswer58477我不太清楚,但看字面意思应该是自增的。如果使用自定义id肯定与其含义相关,保证唯一性不难。比如笔记本型号、移动硬盘型号,比如商品条形码,比如身份证号码等。这些都是自定义id
铂金小虫
铂金小虫
那像osc的AnchorAnswer584779,后面的数字是自定义的还是自增的?自定义要保证唯一性,uuid可以,但是太长一般也没看到过啊。
0
渔樵耕读
渔樵耕读
oracle 的话 就直接用 sys_guid()了。
0
王瑞平
王瑞平

如果有多种数据库需求,只能考虑GUID


返回顶部
顶部