【发布时间】:2012-05-29 12:11:36
【问题描述】:
在 CakePHP 2.x 中使用 HABTM 表,使用“软删除”技术(即在连接表中具有“已删除”布尔字段)的最佳方式是什么,以便在删除关联时“已删除”字段将只被更新为“1”而不是被删除的行?
一个例子是电影数据库,它可以是一个或多个流派的一部分。所有表都有一个“已删除”字段,因此不会从数据库中删除任何数据,只有“已删除”字段会根据需要更新为 1 或 0:
电影
- 身份证
- 姓名
- 已删除
类型
- 身份证
- 姓名
- 已删除
电影类型
- genre_id
- movie_id
- 已删除
当添加或编辑电影时,用户可以选择一个或多个流派来关联电影。如果从电影中删除先前关联的流派,则“已删除”将设置为“1”。如果相同的流派随后与电影重新关联,它将更新回“0”。
我们已经尝试了 CakeDC 的 Utils 插件 - https://github.com/CakeDC/utils 中的 SoftDelete 行为 - 这对电影和流派非常有效,但对我们来说似乎不适用于连接表 GenreMovie,它继续完全删除行。
【问题讨论】:
标签: php cakephp cakephp-2.0 has-and-belongs-to-many cakephp-model