【发布时间】:2014-03-13 23:21:09
【问题描述】:
我将 CouchDB 与 node.js 一起使用。现在只涉及一个节点,即使在遥远的未来,它也不打算改变它。虽然我可以删除大多数需要短且类似自动增量(它可以是稀疏但不像随机)ID 的情况,但仍然有一个地方用户实际需要输入产品的 ID。我想保持这个 ID 尽可能短,并且采用比“4ab234acde242349b”之类的更易于阅读的格式,因为有时必须手动输入等等。
然而,在数据库中,它可以用 CouchDB 喜欢的任何 ID 存储(使用默认的自动生成的 UUID),但应该可以给它一个可以用来识别它的数字。我想到的是创建一个包含 CouchDB 中所有 UUID 的数组的文档。在节点中创建新产品时,我将运行一个更新处理程序,该处理程序最后使用新的唯一 ID 更新所述文档。为了获得产品 ID,我将使用 indexOf 查询数组和客户端,我可以将索引作为短 ID。
我不知道这是否可行。从性能的角度来看,我可以说以下几点:应该执行数字 ID -> uuid 的查询比 uuid -> 数字 ID 的查询要多。数据库中每年最多有 7000 个新条目。也没有可以删除产品的用例,但我不想依赖它。
是否有任何其他适用的方法来生成可以与我的文档关联的更短且更易于阅读的 ID?
/编辑 从技术角度来看:它似乎正在工作。我可以同时进行数字 uuid 的转换,而且看起来很顺利。我现在不知道这是否适用于复制和其他东西,但正如所说的数组,我猜它应该,对吧?
【问题讨论】: