我必须给一些东西贴上"强烈单调递增"的标签.可以是发票编号、运输标签编号等.

  1. 一个数字不能用两次
  2. 当所有较小的数字都已使用(无孔)时,应使用每个数字.

花哨的说法是:我需要数1,2,3,4. 我有的号码空间通常是100.000个号码,我每天可能需要1,000个号码.

我知道这在分布式系统中是一个很难解决的问题,通常我们使用GUID要好得多.但在这种情况下,出于法律原因,我需要"传统编号".

这能在Google AppEngine上实现吗(最好是用Python)?

推荐答案

如果你一定要有连续递增的数字,而且没有间隔,那么你需要使用一个实体,你可以在事务中更新它来"使用"每个新的数字.在实践中,每秒生成的数字将被限制在1-5个左右——这听起来很适合您的要求.

Database相关问答推荐

如何在华为Appcube中创建和使用对象(模型)?

什么是 CREATE VIEW IF NOT EXISTS in postgresql

Postgresql:优化数字字段的列大小

复制 MySQL 数据库的最简单方法?

Postgres pg_dump 每次都以不同的顺序转储数据库

PostgreSQL 是否对只读事务进行了一些性能优化

SQLite3 的动态类型

使用varchar作为主键?

从数据库行在 Golang 中创建map

如何在磁盘上布局 B-Tree 数据?

在内存中创建 SQLite 数据库

TransactionScope 是如何工作的?

在数据库中存储业务逻辑

数据库触发器的命名约定

复式记账的关系数据模型

有哪些不同类型的索引,每种索引的好处是什么?

在连接表中,Rails 缺少组合键的最佳解决方法是什么?

使用 liquibase 更新表中的一行

如何在数据库中表示树状 struct

如何知道mongodb使用的是哪个存储引擎?