原则 2:如何删除多对多关联中的关系和实体



我有两个实体CategoryImage,一个类别可以有很多图像,所以基本上是一对多的关系,但Image也可以从其他实体引用。这就是为什么我通过 mm 表使用唯一=true 约束进行多对多的原因。

所以我的结构是这样的:

category
-- id
images
-- id
category_images
-- category_id
-- image_id

现在我只想通过执行以下操作从类别中删除图像:

$category->images = new ArrayCollection();

unset($category->images);

这里的问题是这只会删除连接,例如 mm 表中的记录 ( category_images ),这是正确的,但我可能需要一个注释,在删除 mm 记录时,也会删除images表中的相关记录?

我知道这有点偏离 mm 的想法,但我没有两个实体引用单个图像的情况,所以它应该对我有用。

最终的想法是能够将图像附加到不同的实体,并提供一种简单的"自动"方法来删除它们。

有什么想法吗?

如果可以将表设置为使用 Engine=InnoDB,则可以使用外键约束在删除父表中的行时自动删除子表中的行。查看详情

ON DELETE CASCADE

在 http://dev.mysql.com/doc/refman/5.1/en/innodb-foreign-key-constraints.html。

相关内容

  • 没有找到相关文章

最新更新