我即将将某些实体从身份切换为hilo id-generator。

我不知道应该如何设计具有较高数值的表。


我应该为所有实体还是一组相关实体使用一个表?
我应该为每个实体使用另一个表吗?
我应该将单个表与每个实体的另一行或另一列一起使用吗?


有没有最佳做法?需要考虑什么?每种方法都有利弊吗?

最佳答案

我认为没有唯一的“最佳”实践,但是了解HiLo的工作原理很重要:


表hilo生成器是为不支持序列的数据库而设计的,序列更适合此任务。
首次保存该类的实例时或在Lo值用尽时,将检索并更新该类的Hi值。
每个类别使用不同的Hi值。


因此,您必须至少考虑两个变量:


争用。您可以通过使用单独的表来稍微提高性能
范围。对于一个非常大的数据库,您最终最终用尽Hi值的风险更大。


考虑了这一点之后,这只是一个品味问题。

07-24 21:15