0

这是一个设计问题。我很感兴趣,因为这会对性能产生影响,但是,在可理解性或语义方面,我们有吗?

我见过很多人——尤其是在企业环境中——让 Hibernate 生成单独的表,而不是创建外键约束。

特别是,如果你有表 A 和表 B,并且关系是一对多的,那么人们倾向于让 Hibernate 生成表 A_B,其中包含 A 和 B 的主键,并且表现出 1-to -许多关系。更具体地说,他们将外键约束提取到一个新的单独的表中。

1)从性能的角度来看,这不是那么幸运,需要额外的表(更多内存)并且通常需要更多的连接,这可能会对性能产生负面影响。当然,这取决于底层实现,因为通过缓存和智能游标管理可以缓解这种情况。

2) 语义和/或可理解性是否受到影响?如果是这样,那么永远不要查看生成的代码的规则呢?(代码生成的倡导者将给出一个明确的 NO)。这仅适用于您从模型生成表的情况(如 Hibernate 允许您这样做)。

3)范式不受这种设计表格的方式的影响,但是,当您尝试施加更高的范式时,它确实会导致“表格爆炸”。

我真的不明白这个“最佳实践”(如果是的话)是否有隐藏的含义,或者这只是配置 Hibernate 时的错误/缺乏理解;-)。

任何和所有的意见都非常受欢迎!

编辑:表/关系不是 n 对 m(多对多)。此外,您可以让 Hibernate 生成关系而不是外键约束,我的问题(上述问题)是您为什么要这样做?!

4

0 回答 0