在 CakePHP 2.x 中使用 HABTM 表,使用“软删除”技术(即在连接表中“删除”布尔字段)的最佳方式是什么,以便在删除关联时“删除”字段只会更新为“1”而不是被删除的行?
一个例子是电影数据库,它可以是一个或多个流派的一部分。所有表都有一个“已删除”字段,因此不会从数据库中删除任何数据,只有“已删除”字段会根据需要更新为 1 或 0:
电影
- ID
- 姓名
- 已删除
类型
- ID
- 姓名
- 已删除
类型电影
- 流派_id
- 电影编号
- 已删除
添加或编辑电影时,用户可以选择一个或多个流派来关联电影。如果从电影中删除了先前关联的流派,则“已删除”将设置为“1”。如果相同的流派随后与电影重新关联,它将被更新回“0”。
我们已经尝试了 CakeDC 的 Utils 插件中的 SoftDelete 行为 - https://github.com/CakeDC/utils - 这对电影和流派非常有效,但对我们来说似乎不适用于连接表 GenreMovie,它继续已完全删除行。