为什么DigitalOcean使用uuid作为Droplet id的用户ID和整数?

问题描述 投票:1回答:1

我正在构建一个REST-API,当我正在研究什么id类型给某些对象时,我看到了DigitalOcean API Documentation

对象:volume, volume snapshot, certificate, domain, firewall and load balancer都有一个字符串uuid。

对象:action, domain record, droplet, droplet snapshot, droplet kernel, droplet backup, droplet neighbor, image and SSH key有一个整数id。但是Droplets有一个唯一的整数id。

在每个对象的情况下使用整数id或字符串id的意图是什么?

我唯一想到的是,DigitalOcean在早年使用过字符串ID不能只是将所有字符串id切换为整数ID。

要么

出于性能原因,所有短寿命或被大量创建的对象通常都具有整数id,而具有字符串ID的对象则相反,长寿并且创建频率较低。

我已经制作了两个表来查看哪些对象具有字符串/整数id。

performance uuid digital-ocean reasoning id
1个回答
1
投票

在DigitalOcean,我们已经标准化了未来使用字符串uuids。其中一个主要动机是主键绑定与特定数据存储区实现相关联,并且可能使架构重构更加困难。因此,使用整数ID的资源正在这样做以实现向后兼容性,并且只是更长时间(即我们的Droplet是我们的第一个产品,而Load Balancers和Firewalls这样的东西是最近添加的)。

完全披露:除其他外,我保留了DigitalOcean的API文档。

© www.soinside.com 2019 - 2024. All rights reserved.