CakePHP 2.xでHABTMテーブルを使用する場合、関連付けを削除するときに「削除された」フィールドのみが更新されるように、「ソフト削除」手法(つまり、結合テーブル内に「削除された」ブールフィールドを持つ)を使用する最良の方法は何ですか。行が削除される代わりに「1」?
例として、1つ以上のジャンルの一部となることができる映画のデータベースがあります。すべてのテーブルには「削除済み」フィールドがあるため、データベースからデータが削除されることはなく、「削除済み」フィールドのみが必要に応じて1または0に更新されます。
映画
- id
- 名前
- 削除
ジャンル
- id
- 名前
- 削除
ジャンル映画
- genre_id
- movie_id
- 削除
映画を追加または編集するとき、ユーザーは映画を関連付ける1つ以上のジャンルを選択できます。以前に関連付けられたジャンルがムービーから削除された場合、「削除済み」は「1」に設定されます。その後、同じジャンルが映画に再関連付けされると、「0」に更新されます。
CakeDCのUtilsプラグイン( https://github.com/CakeDC/utils )からSoftDeleteの動作を試しましたが、これはMovieとGenreには最適ですが、結合テーブルGenreMovieには機能しないようです。行を完全に削除します。