2

假设我有两个表:Categoryand Product, 和用外键Product链接。我希望我的数据库服务器使用非规范化字段 Category.productCount 来计算一个类别中的产品数量 - 触发器将在任何更新/删除/插入时更新此计数,所以我不必担心它。有没有办法以某种方式将数据库端触发器与 Doctrine2 实体同步?我真的不想在 PHP 端重新计算这些计数器,因为我们将在多个服务器上运行它。CategoryProduction.categoryId == Category.id

4

1 回答 1

1

如果我理解您希望能够将新产品添加到类别的问题,请将其保留,然后让 Category.productCount 从数据库中自行更新?您可以使用

$entityManager->refresh($category);

从数据库中重新加载实体。我自己没有做过,但我希望您可以使用生命周期功能来自动执行此操作。

但我有点想知道,如果只在本地增加计数器而不将其持久化到数据库中可能不是更好。让您的触发器执行数据库操作,但在请求中,在本地更新计数。

于 2012-04-05T14:03:00.953 回答