レコードの削除が頻繁に発生する Web アプリケーションの場合、パフォーマンスを考慮すると何が最適でしょうか?
レコードに他のテーブルとの関連性があるかどうかを確認し、ユーザーが削除できないようにします。
例:クエリは次のようになります
if not exist(select * from table1 where tableX_id = @id) and not exist(select * from table2 where tableX_id = @id) ... then delete from tableX where id = @id
また
を実行し、制約
delete
により RDBMS にエラーを発生させます。foriegn key
try{ Service.DeleteRecord(id) }catch{ Handle the error here }
この場合、クエリは単純になります
delete from TableX where id = @id