2012-12-08 72 views
0

對於我正在開發的項目,我們有一個完全規範化的數據庫,其中沒有任何信息是多餘的。Symfony2 Doctrine使用緩存表

我想保持這種方法,也可加「緩存」表,這實質上是表已預先計算的信息。我希望能夠將這些信息放在單獨的表格中(可以根據需要將它們吹走並重新生成)。

例如,其中的一部分涉及論壇。一個「緩存」值將是用戶所做的帖子數量。沒有必要將它保留在任何規範化表格中,因爲它可以根據與該用戶鏈接的帖子計數來計算。然而,這是一個相對昂貴的調用,所以緩存表會跟蹤我的這個值,並且我可以根據需要從中獲取。

我也強烈考慮使用的NoSQL數據庫MongoDB的喜歡這個,因爲緩存表將基本上沒有加入或外鍵(使得它可以完美的MongoDB)。

任何想法如何我應該在Symfony2中使用Doctrine?任何人之前做過?

謝謝!

更新

由於greg0ire評論,它看起來像學說有內建的緩存功能:http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html

有誰知道我是否可以使用這個緩存我值而不將其存儲在數據庫中?

舉例來說,如果我有一個未映射屬性$ postCount,我可以使用Doctrine來緩存值(或我猜測,在一起是值的對象填充)?

這種方法(緩存到內存而不是數據庫)的唯一問題是,我們正在集羣環境中工作,所以我要麼必須多次構建緩存(每個用戶點擊的服務器),或設置一個共享緩存服務器設置(這有點棘手)。

我會繼續調查這條路線,但沒有人知道任何數據庫存儲的方法嗎?

謝謝。

+0

您是否知道doctrine2有一個[內置緩存系統(http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html)? – greg0ire

+0

我不是。如果我正確地理解它,那可能恰恰是我正在尋找的東西。一旦我有時間真正寫出一些代碼來嘗試解決問題,我會回覆。 – samanime

+0

結果高速緩存將無法緩存映射的性質,因爲我想他們不會在查詢後進行水合。結果緩存緩存查詢結果。您可以設置共享緩存服務器或多個緩存服務器,查看配置。 – greg0ire

回答