我认为不公开自动递增的数据库 ID(帐户、产品等)是更好的方法。我们也许可以使用 UUID 并通过 API 或网页公开它们。
但我查了一下,很多大公司似乎并不关心:
- 谷歌、亚马逊、Facebook、Twitter(似乎都有数字
自动递增帐户 ID)
- Macys 和 Ebay 显示自动递增的产品 ID(或网络 ID)
id
亚马逊似乎确实关心的一个案例:
- 亚马逊确实在其产品目录中使用 ASIN 编号(其中
据说内部链接到他们的数字自动递增数据库
产品 ID。)
那么,在使用 UUID 时,我们是否试图解决一个不存在的问题?只是不值得花时间和精力吗?
关于在帐户表中使用自动递增 id,以下是它不是一个好主意的一些原因:
- 序列号向公众公开表中的记录数以及在一段时间内采样的表的增长率。
- 如果 api 的安全性很差,那么只需增加 id 并进行 api 调用,就可以抓取数据库中的所有记录,直到检索到所有数据。
当使用自动递增id并插入多个相关实体时,您需要多次调用数据库才能将实体插入数据库中。如果使用 UUID,您可以构造整个对象集,而无需与数据库交互。例如,对于订单标题和订单行项目,您需要插入订单标题,获取主 ID,然后插入具有订单标题 ID 的订单行项目。
当将数据从开发迁移到暂存或暂存到实时时,如果使用自动增量 ID 和外键等,插入新数据可能会很困难。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)