【问题标题】:How to increment a sequential identifier in DynamoDB?如何在 DynamoDB 中增加顺序标识符?
【发布时间】:2020-11-28 01:05:45
【问题描述】:

我在 dynamodb 中有一个带有哈希排序组合键的发票表。哈希是一个 uuid“tenantId”,排序是一个名为“id”的发票的 uuid。但是,我有一个名为“InvoiceNumber”的字段,它是发票的人类可读顺序标识符。

当我创建新记录同时确保唯一性并避免竞争条件时,增加 InvoiceNumber 的最佳/最佳方式是什么?

编辑:需要为每个散列或租户强制执行唯一性,但不是跨表。

【问题讨论】:

  • InvoiceNumber 在每个 tenantId 中是唯一的还是全局的?另外,您的任何项目是否曾经被删除?
  • 现在它们可以被删除,但如果它有助于这个过程,我可以将它们存档。至于唯一性。它需要在同一个哈希 (tenantId) 中是唯一的,但不能在整个表中是唯一的。
  • @Andre.IDK 有什么想法吗?

标签: amazon-dynamodb


【解决方案1】:

看看这个Atomic Counter 示例。这正是您正在寻找的。​​p>

【讨论】:

  • 原子值对现有记录不起作用吗?例如,投票 = 投票 + 1。在我的情况下,我希望获取最后一个发票号码并将其增加一个以获取新记录,同时注意竞争条件。
  • > 原子计数器不适用于不能容忍多计或少计的情况(例如,在银行应用程序中)。
猜你喜欢
  • 2010-10-23
  • 2011-11-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-27
  • 1970-01-01
  • 2021-03-23
相关资源
最近更新 更多