代码之家  ›  专栏  ›  技术社区  ›  Tony Day

远程生成代理键

  •  1
  • Tony Day  · 技术社区  · 15 年前

    对不起,因为这个问题类似(但不一样!)给别人。

    无论如何,我需要能够在多个位置生成代理键,以便稍后同步。我正在考虑使用guid,但是这些键可能必须出现在URL的参数中,guid会非常复杂和难看。

    我正在考虑一个允许我使用整数的方案,在数据库中提供更好的性能,但显然我不能简单地使用自动数。我的想法是用一个有两个含义的键——我认为它叫做“高-低”策略。该键将由源代码(在生成它的地方,在这个业务案例中通常是2个位置中的1个)和自动递增的值组成。例如:

    1- 000000,567, 1- 000000,568, 1- 000000,569, 1- 000000,570, …

    对于另一个来源:

    000000,567 000000,567 …

    这也意味着我可以将它们作为整数存储在数据库中(即“2-000000567”将成为整数“2000000567”)。

    有人能看到这个问题吗?例如 标引 碎片化 这可能发生?或者也许是更好的方法?

    只需确认一下,这个键中没有业务含义,用户将永远看不到它(可能在URL的参数中除外),也不会使用它。

    我期待您的意见,感谢您的宝贵时间,非常感谢:)

    1 回复  |  直到 15 年前
        1
  •  1
  •   Community Marks    7 年前

    这解释了您所指的hilo算法: What's the Hi/Lo algorithm?

    这是经常使用的解决方案来“断开”像您这样的问题。例如,如果您使用Hibernate/NHibernate,它是推荐的主要选项之一。

    推荐文章