2

と の 2 つのテーブルがあるCategoryProductProductます。非正規化されたフィールド Category.productCount を使用して、データベース サーバーにカテゴリ内の製品数のカウントを処理してもらいたいと考えています。トリガーは更新/削除/挿入時にこのカウントを更新するので、心配する必要はありません。どうにかしてデータベース側のトリガーを Doctrine2 エンティティと同期する方法はありますか? 複数のサーバーで実行するため、PHP 側でこれらのカウンターを再計算したくありません。CategoryProduction.categoryId == Category.id

4

1 に答える 1

1

新しい製品をカテゴリに追加できるようにしたいという質問を理解したら、それを保持してから、データベースから Category.productCount 自体を更新しますか? 使用できます

$entityManager->refresh($category);

データベースからエンティティをリロードします。私は自分で行ったことはありませんが、ライフサイクル機能を使用してこれを自動化できると思います。

しかし、カウンターをデータベースに永続化せずにローカルでインクリメントする方が良いのではないかと思います。トリガーにデータベース操作を実行させますが、リクエスト内でカウントをローカルで更新します。

于 2012-04-05T14:03:00.953 に答える