假设我想在 RethinkDB 中建模构建一些小部件。构建过程开始,获取一个唯一的 ID,开始工作一段时间,然后在完成后将数据写入数据库中给定的 ID 下。有许多类型的小部件,并且 ID 在所有小部件中应该是唯一的。
如果我在 Postgres 中执行此操作,我可能会有一个主widget
表,每个小部件类型(widget_x
、widget_y
等)都有一个表继承自该主表。ID 将是主widget
表上的 SERIAL 类型。当构建过程开始时,我会插入一些数据,获取我的唯一 ID,开始工作,然后在构建完成后更新表格。我可能不会在整个过程中使用事务,因为构建可能需要很长时间。
在 RethinkDB 中如何做到这一点?我真的需要 ID 是一个递增的整数,所以我不能使用默认的 UUID 键。我希望每个小部件类型都在它自己的表中。
如果我在每个小部件构建开始之前执行此查询:
r.table("counters")
.get("some-uuid-key")
.update({ widget_counter: r.row("widget_counter").add(1) }, {return_vals: true})
这会像我希望的那样工作,给我数据库范围的唯一 ID,而没有任何 ID 冲突的可能性吗?
谢谢...