首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成不带数据库序列的9位ids

问生成不带数据库序列的9位ids
EN

Stack Overflow用户
提问于 2009-07-27 04:08:27
回答 6查看 2.2K关注 0票数 2

我想要创建9位数字的数字‘d,在不同的机器上是独一无二的。我目前正在使用数据库序列,但我想知道是否可以不使用数据库序列。序列将用于X12 EDI事务,因此它们不必永远是唯一的。也许只有24小时是独一无二的。

我唯一的想法是:

  1. 每个服务器都有一个2位的服务器标识符。
  2. 每个服务器都维护一个基本上跟踪本地序列的文件。
  3. id =+ <7位数列wraps>

我最大的问题是如果硬盘坏了该怎么办。我不知道它停在哪里了。

我所有的其他想法基本上都是重新创建一个集中的数据库序列。

有什么想法吗?

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-07-27 04:19:55

如果HD失败,您只需设置新的和未使用的2位服务器标识符,并确保该数字是唯一的(至少24小时)。

票数 2
EN

Stack Overflow用户

发布于 2009-07-27 04:33:03

以下内容

代码语言:javascript
复制
{XX}{dd}{HHmm}{N}

其中{XX}是机器号{dd}是月份{HHmm}当前时间(24小时)的日期,{N}是顺序编号。

一个hd崩溃将需要超过一分钟,所以从0开始再次不是一个问题。

还可以根据需要将{dd}替换为{ss}数秒。每分钟的唯一性期与请求。

票数 3
EN

Stack Overflow用户

发布于 2009-07-27 04:14:52

如何生成GUID (确保唯一性),然后使用某种哈希函数将GUID转换为9位数字?

就在我头顶上..。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1186387

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档