使用CakePHP 2.x中的HABTM表,使用“软删除”技术的最佳方法是什么(即在连接表中具有“已删除”的布尔字段),以便在删除关联时,“已删除”字段将仅更新为“1”而不是被删除的行?
一个例子是电影数据库,它可以是一个或多个类型的一部分 . 所有表都有一个“已删除”字段,因此不会从数据库中删除任何数据,只有“已删除”字段会根据需要更新为1或0:
电影
-
id
-
名字
-
已删除
类型
-
id
-
名字
-
已删除
GenreMovie
-
genre_id
-
movie_id
-
已删除
添加或编辑电影时,用户可以选择一个或多个类型来关联电影 . 如果从电影中删除先前关联的类型,则“已删除”将设置为“1” . 如果相同的类型然后与电影重新关联,它将更新回“0” .
我们've tried the SoftDelete behaviour from CakeDC'的Utils插件 - https://github.com/CakeDC/utils - 适用于Movie和Genre,但对我们来说似乎不适用于连接表GenreMovie,它继续完全删除行 .
1 回答
你可以在你的人际关系中做出deleteQuery .
另外为了防止删除连接表中的记录,请查看: