ID物理主键+UUID逻辑主键
我在网上看到了有人设计主键的时候这么设计,ID物理主键+UUID逻辑主键
主键ID是自增来做,而另加一个uuid做唯一索引,表外键关联什么的,还 用uuid来做,也就是说ID只是一个形式上的主键,而uuid才是事实上的主键,这样,一方面int主键不会浪费太多空间,另一方面,还可以继续使用uuid。
我觉得这不久等于脱裤子放屁吗?还不如直接用自增长做主键了,
如果以后做分布式,主键还是自增长也没有任何唯一性保证啊,做集群数据同步也有ID冲突的风险。
你们说他们这么干为啥?出于什么考虑?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(12)
有一部分历史原因,更多的是管理上的方便。注意那个int主键已经不用来请求的查找和集群的管理了,只是为了便于记忆,比如你要记下来一个条目的id,肯定是40775这样的数字比一大长串十六进制的uuid方便,对吧?
至于你产生这个问题的另一个原因,可能是对uuid不大了解,建议自己去查点资料。
软件工程是门妥协的艺术
回复
你们是使用id做主键,子表的外键是引用主表的uuid
回复
恩传uuid,所有的表有几个固定字段;uuid,live flag,createtime等等
那你的那个页面传递的都是UUID吗?
回复
系统中流转基本上都使用uuid
回复
恩是的
我也是这么做的,因为网站业务原因,怕有心人利用id推算商业信息;
所以用了id+uuid,也是为了怕以后数据库拆分时方便。
如果是这样 那可以直接使用自增长就好了,为什么还要价格UUID
可能是因为性能的原因:
http://imysql.com/2014/09/14/mysql-faq-why-innodb-table-using-autoinc-int-as-pk.shtml
这位兄台说得是
看到你给我的私信了兄弟,技术方面前面两位已经解释的很清楚了,我只想说:
甲之砒霜,乙之蜜糖
你觉得不简洁不优美的方法,在我这里却可以很好的解决问题,因为你没有遇到过我当时的需求和困难
软件工程是门妥协的艺术
另外注意你的语言,都是文化人,何必用“脱裤子放屁”形容别人的设计呢?