0

对于我正在进行的项目,我们有一个完全规范化的数据库,其中没有多余的信息。

我想保留这种方法,但还要添加“缓存”表,这些表本质上是具有预先计算信息的表。我希望能够将这些信息放在单独的表格中(然后可以根据需要将其删除并重新生成)。

例如,其中一部分涉及论坛。一个“缓存”值是用户发表的帖子数。无需将其保留在任何规范化表中,因为它可以根据与该用户链接的帖子计数来计算。然而,这是一个(相对)昂贵的调用,所以缓存表会为我跟踪这个值,我可以根据需要从中提取。

我也强烈考虑为此使用像 MongoDB 这样的 NoSQL 数据库,因为缓存的表基本上没有连接或外键(使其非常适合 MongoDB)。

任何想法我应该如何在 Symfony2 中使用 Doctrine 来解决这个问题?以前有人做过吗?

万分感谢!

更新

正如 greg0ire 评论的那样,Doctrine 看起来有一些内置的缓存功能:http ://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html

有谁知道我是否可以使用它来缓存我的值而不将它们存储在数据库中?

例如,如果我有一个未映射的属性 $postCount,我可以使用 Doctrine 缓存该值(或者我猜是填充了该值的对象)吗?

这种方法的唯一问题(缓存到内存而不是数据库)是我们在集群环境中工作,所以我要么必须多次构建缓存(用户点击的每台服务器),要么设置 get a共享缓存服务器设置(这有点棘手)。

我将继续调查这条路线,但有人知道任何数据库存储方法吗?

谢谢。

4

1 回答 1

1

我想你可能正在寻找Doctrine 的结果缓存 这里是sf2 配置的相关部分

于 2012-12-11T09:14:46.450 回答