多くの関係を持つ Symfony2 プロジェクトがあり、いつでもデータセットの一貫性を維持したいと考えています。たとえば、販売は製品にリンクされています。
ユーザーが製品を削除することを決定したが、製品が販売にリンクされている場合、販売オブジェクトの一貫性を維持するにはどうすればよいですか?
プレーン SQL では、RESTRICT リレーションを使用して「非表示」の列を追加します。商品に関連付けられた販売がない場合、その商品は削除されます。1 つ以上の販売がある場合、製品は削除されませんが、非表示フィールドは true に設定されます。
ユーザー インターフェイスでは、SQL 要求は次のようになります。
SELECT * FROM product WHERE hidden = FALSE
この問題を処理する正しい方法ですか? Symfony 2 で同様の動作をする方法について何か考えはありますか?