0

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

所以我的结构是这样的:

category
-- id

images
-- id

category_images
-- category_id
-- image_id

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

$category->images = new ArrayCollection();

或者

unset($category->images);

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

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

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

有任何想法吗?

4

1 回答 1

0

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

ON DELETE CASCADE

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

于 2012-12-13T13:39:15.847 回答