私が取り組んでいるプロジェクトでは、冗長な情報がない完全に正規化されたデータベースがあります。
この方法を維持したいのですが、「キャッシュ」テーブルも追加します。これは基本的に、事前に計算された情報を持つテーブルです。この情報を別々のテーブルに入れたいと思っています(必要に応じて吹き飛ばして再生成できます)。
たとえば、これにはフォーラムが含まれます。「キャッシュされた」値の 1 つは、ユーザーが行った投稿の数です。これは、そのユーザーにリンクされた投稿の数に基づいて計算できるため、正規化されたテーブルに保持する必要はありません。ただし、これは (比較的) 高価な呼び出しであるため、キャッシュ テーブルがこの値を追跡し、必要に応じてそこから引き出すことができます。
また、これに MongoDB のような NoSQL データベースを使用することを強く検討しています。これは、キャッシュされたテーブルには基本的に結合や外部キーがないためです (MongoDB に最適です)。
Symfony2 で Doctrine を使用してこれにアプローチする方法はありますか? 誰もこれを以前にやったことがありますか?
ありがとうございます!
アップデート
greg0ire のコメントによると、Doctrine にはキャッシュ機能が組み込まれているようです: http://docs.doctrine-project.org/projects/doctrine-orm/en/latest/reference/caching.html
これを使用して値をデータベースに保存せずにキャッシュできるかどうかは誰にもわかりませんか?
たとえば、マップされていないプロパティ $postCount がある場合、Doctrine を使用してその値 (または、その値が入力されたオブジェクト) をキャッシュできますか?
このアプローチ (データベースではなくメモリへのキャッシュ) の唯一の問題は、クラスター化された環境で作業しているため、キャッシュを複数回 (ユーザーがアクセスするサーバーごとに) 構築するか、get を設定する必要があることです。共有キャッシュ サーバーのセットアップ (これは少しトリッキーです)。
このルートを引き続き調査しますが、データベースに保存されたメソッドを知っている人はいますか?
ありがとう。