一尘不染

什么是高/低算法?

hibernate

什么是高/低算法?

我已经在NHibernate文档中找到了这一点(这是生成唯一密钥的一种方法,第5.1.4.2节),但是我没有找到有关其工作原理的很好的解释。

我知道Nhibernate可以处理它,并且我不需要了解内部,但是我很好奇。


阅读 304

收藏
2020-06-20

共1个答案

一尘不染

基本思想是,您有两个数字组成主键-“高”数字和“低”数字。客户端可以从本质上增加“高”序列,知道它随后可以安全地从先前的“高”值的整个范围(具有各种“低”值)生成密钥。

例如,假设您有一个“高”序列,当前值为35,而“低”数在0-1023范围内。然后客户端可以将序列增加到36(其他客户端在使用35时能够生成密钥),并知道密钥35
/ 0、35 / 1、35 / 2、35 / 3 … 35/1023是全部可用。

能够在客户端设置主键,而不是在没有主键的情况下插入值然后将其取回客户端的功能非常有用(尤其是在ORM中)。除了其他方面,这意味着您可以轻松建立父子关系,并在进行
任何 插入操作之前就将所有密钥都放置到位,这使批处理更为简单。

2020-06-20