NHibernate和hilo生成器:如何设计关键表?

时间:2010-02-03 14:09:04

标签: nhibernate database-design hilo

我即将把我的一些实体从身份转换为hilo id-generator。

我不知道如何设计持有下一个高值的表格。

  • 我应该为所有实体或一组相关实体使用单个表吗?
  • 我应该为每个实体使用另一个表吗?
  • 我应该为每个实体使用一个包含另一行或列的表吗?

有没有最佳做法?需要考虑什么?任何方法都有任何优点或缺点吗?

1 个答案:

答案 0 :(得分:3)

我认为没有一个“最佳”练习,但了解HiLo的工作原理非常重要:

  • 表格hilo生成器专为不支持序列的数据库而设计,这些数据更适合此任务。
  • 第一次保存该类的实例或用完 Lo 值时,会检索并更新类的 Hi 值。
  • 每个班级使用不同的 Hi 值。

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

  • 争用。您可以使用单独的表
  • 来提高性能一点
  • 范围。使用非常大的数据库,您最终会耗尽 Hi 值的风险更大。

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