Hi/Lo 算法是什么?
我在中找到了这个NHibernate http://en.wikipedia.org/wiki/NHibernate文档(这是生成唯一密钥的一种方法,第 5.1.4.2 节),但我还没有找到对其工作原理的很好的解释。
我知道 Nhibernate 会处理它,我不需要知道里面的情况,但我只是好奇。
基本思想是用两个数字组成主键——一个“高”数字和一个“低”数字。客户端基本上可以增加“高”序列,因为知道它可以从先前“高”值的整个范围与各种“低”值安全地生成密钥。
例如,假设您有一个当前值为 35 的“高”序列,而“低”数字在 0-1023 范围内。然后客户端可以将序列增加到 36(以便其他客户端能够在使用 35 时生成密钥)并知道密钥 35/0、35/1、35/2、35/3...35/1023 是全部可用。
能够在客户端设置主键,而不是插入没有主键的值,然后将它们取回到客户端,这非常有用(特别是对于 ORM)。抛开其他事情不说,这意味着您可以轻松建立父/子关系,并在执行此操作之前将钥匙全部准备好any插入,这使得批处理变得更简单。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)