假设我有以下情况:我有5个实体(为简单起见而减少),其中我明确知道其中3个数据库中的记录很少(15-20或所以每个)。其余2个实体将拥有大量记录(数千个)并且也将迅速增长。
使用默认的Hibernate ID生成策略(AUTO
),这意味着所有记录都将在所有实体中具有唯一ID(因为只有1个序列)。我不愿意这样做,因为这意味着由于某些表格中有大量记录,ID会快速增长。
问题#1 :我可以重新定义两个大实体的ID stragey,以便每个实体都有自己的序列,并将其他实体保留在AUTO
上吗?混合和匹配ID策略是否被视为好/坏做法?我应该/不应该这样做的任何理由?
问题#2 :考虑到Oracle 10g数据库,ID生成策略是否有任何优缺点?例如;最好使用TABLE
代替SEQUENCE
吗?
提前致谢!
答案 0 :(得分:1)
问题#1:完全没问题。每个实体类都可以拥有自己的ID策略。
问题#2:序列主要用于生成代理键。所以,请毫不畏惧地使用它:-)
答案 1 :(得分:0)
使用oracle DBMS我认为您应该考虑为所有实体使用序列