【发布时间】:2015-04-28 02:26:50
【问题描述】:
我注意到 Stripe 使用了一个将键/ID 格式化为 ch_15aCcp2eZvKYlo2CYmE3Fy2h 的数据库,其中“ch_”似乎是表名的前缀,或者是正在存储的对象的类型。
什么数据库做这种风格的id?可能是自定义的,但我看到其他 API 提供商使用类似的样式 ID。
这纯粹是出于我自己的好奇心。
【问题讨论】:
标签: database api stripe-payments
我注意到 Stripe 使用了一个将键/ID 格式化为 ch_15aCcp2eZvKYlo2CYmE3Fy2h 的数据库,其中“ch_”似乎是表名的前缀,或者是正在存储的对象的类型。
什么数据库做这种风格的id?可能是自定义的,但我看到其他 API 提供商使用类似的样式 ID。
这纯粹是出于我自己的好奇心。
【问题讨论】:
标签: database api stripe-payments
我不在 Stripe 工作,但对他们的工作很感兴趣。一些研究表明,密钥(至少您所指的收费对象密钥)是由其应用程序代码随机生成的。请参阅 Patrick Collison 的 this Quora post。
关于数据库:从this blog post 来看,我估计他们主要使用 PostgreSQL,而 MongoDB 的使用量也在不断增加。例如,他们的开源 Gaps 工具使用 MongoDB 进行数据持久化。抱歉,我无法在此处发布链接,目前每个帖子仅限 2 个链接。你可以在 github 上找到它。
【讨论】:
根据 Patrick Collison 在其 interview on Techzing 中的说法,Stripe 使用 MySQL 和 Mongo。
【讨论】:
Redis 应该包含在列表中,至于 Brandur 的博客,Stripe 的工程师 https://brandur.org/redis-cluster。
他的博客中还有很多关于 Postgres 的内容。
【讨论】:
我不确定底层数据库技术,但您可以使用 nanoid 创建类似的唯一 ID。
【讨论】: