バックグラウンド
データにSQLiteDBを使用するプロジェクトがいくつかあります。データベースに保存されているデータは、明らかにキー/外部キー値によってリンクされた複数のテーブルに保存されています。
これらのデータベースでは、1つのレコードに何かが変更された場合、他のいくつかのテーブルを更新する必要があります。私の頭から離れた最良の例は、レコードを削除することです。削除するレコードに関連する他のすべてのレコードも削除する必要があります。さて、この例はキー/外部キー値を使用して解決できると思いますが、より複雑な更新についてはどうでしょうか?
現在、私はプロのDB管理者ではありませんが、DBにデータの整合性が必要であるか、状況が醜くなることはわかっています。
質問
だから、私の質問。プログラムで関連するテーブルを更新するときは、より細かく制御できることを知っていますが、人的エラーと時間が犠牲になります。何かを見逃したり、テーブルの更新を正しく実装しなかったりする可能性があり、更新のコーディングにかなり時間がかかります。一方、トリガーを入れてDBに他のテーブルの更新を処理させることはできますが、そうすると多くの制御が失われます。
それで、どちらが良いですか?それぞれが異なる状況で優れていますか?