非规范化字段的Doctrine2和数据库端触发器

时间:2012-04-04 20:42:06

标签: doctrine-orm

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

1 个答案:

答案 0 :(得分:1)

如果我理解您希望能够将新产品添加到某个类别的问题,请坚持下去,然后从数据库中更新Category.productCount吗?你可以使用

$entityManager->refresh($category);

从数据库重新加载实体。我自己没有这样做,但我希望你可以使用生命周期功能来实现自动化。

但是我有点想知道在没有将数据库持久保存到数据库的情况下在本地增加计数器是否更好。让您的触发器执行数据库操作,但在请求中,在本地更新计数。