3

我的应用程序即将结束,并且有 25 个查找表。我的一些域类有 15 个表引用作为属性(一对一)。现在我刚刚记得/知道我可以使用枚举来代替。我确信我可以将一堆查找表重构为枚举类。但是,使用枚举与查找表的最佳实践是什么?关于我的应用场景的一些事情可能有助于回答:

  1. 只有一个开发者(我)
  2. 这是一个基于网络的应用程序
  3. 它不会是一个被大量使用的应用程序
  4. 当呈现当前具有 15 个查找的域类的视图时,将需要加载所有这些查找以在视图中显示数据。(15 个加入)
  5. 查找将缓存在内存中。
  6. 与域类的查找关系都是一对一的
  7. 查找中的数据很少会改变
  8. 查找表中的一些值很罗嗦,例如:“照顾动物”
  9. 一些查找有许多记录。示例:一个查找是美国各州。另一个是一个人的职业。
4

2 回答 2

5

我认为最明显的答案是将枚举用于永远不会改变的事情。就像一周中的日子,或者太阳系中的行星——好的,所以有时你认为不会改变的事情实际上改变了,但没关系——快速更新,你可以再坚持几年。

但是,当您处理的数据肯定会随着时间的推移而经常发生变化时,请务必将其存储在数据库中。对表的更改不需要更改代码和重新部署。此外,为这些添加管理界面会很好 - 脚手架屏幕应该足够快速和简单。

于 2013-09-26T21:22:36.970 回答
1

这只是我的看法。我认为这里没有“正确”的答案。

如果它存储在数据库中,我使用查找表。它更灵活,并且基于一些东西,应该更高效。虽然您必须进行连接查询,但您可以通过启用二级缓存来减轻这种影响。 cache: true在您的映射中。

使用枚举而不是查找时要记住的一件事是,不再有指向单独表的外键,因此您不能保证这些值在数据库级别所需的列表中。另外,如果您需要基于枚举进行查询,现在是字符串比较,而不是通常的数字比较。

于 2013-09-26T22:42:04.947 回答