ID物理主键+UUID逻辑主键

发布于 2021-11-29 00:29:30 字数 408 浏览 772 评论 12

    我在网上看到了有人设计主键的时候这么设计,ID物理主键+UUID逻辑主键

    主键ID是自增来做,而另加一个uuid做唯一索引,表外键关联什么的,还 用uuid来做,也就是说ID只是一个形式上的主键,而uuid才是事实上的主键,这样,一方面int主键不会浪费太多空间,另一方面,还可以继续使用uuid。

        我觉得这不久等于脱裤子放屁吗?还不如直接用自增长做主键了,

         如果以后做分布式,主键还是自增长也没有任何唯一性保证啊,做集群数据同步也有ID冲突的风险。

你们说他们这么干为啥?出于什么考虑?


如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(12

居里长安 2021-11-30 16:45:19

有一部分历史原因,更多的是管理上的方便。注意那个int主键已经不用来请求的查找和集群的管理了,只是为了便于记忆,比如你要记下来一个条目的id,肯定是40775这样的数字比一大长串十六进制的uuid方便,对吧?

至于你产生这个问题的另一个原因,可能是对uuid不大了解,建议自己去查点资料。

勿忘初心 2021-11-30 16:45:16

软件工程是门妥协的艺术

鹤舞 2021-11-30 16:45:15

回复
你们是使用id做主键,子表的外键是引用主表的uuid

不乱于心 2021-11-30 16:45:15

回复
恩传uuid,所有的表有几个固定字段;uuid,live flag,createtime等等

葬花如无物 2021-11-30 16:45:15

那你的那个页面传递的都是UUID吗?

平定天下 2021-11-30 16:45:13

回复
系统中流转基本上都使用uuid

拥有 2021-11-30 16:45:13

回复
恩是的

不乱于心 2021-11-30 16:45:12

我也是这么做的,因为网站业务原因,怕有心人利用id推算商业信息;

所以用了id+uuid,也是为了怕以后数据库拆分时方便。

倚栏听风 2021-11-30 16:45:03

如果是这样 那可以直接使用自增长就好了,为什么还要价格UUID

冷默言语 2021-11-30 16:42:47

这位兄台说得是

羁拥 2021-11-30 03:52:44

看到你给我的私信了兄弟,技术方面前面两位已经解释的很清楚了,我只想说:

甲之砒霜,乙之蜜糖

你觉得不简洁不优美的方法,在我这里却可以很好的解决问题,因为你没有遇到过我当时的需求和困难

软件工程是门妥协的艺术

另外注意你的语言,都是文化人,何必用“脱裤子放屁”形容别人的设计呢?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文