データベーストリガーは必要ですか? [closed] 質問する

データベーストリガーは必要ですか? [closed] 質問する

私の経験では、トリガーは予期しない副作用を引き起こす可能性があり、デバッグが困難であるため、良いアイデアではありません (特に、1 つのトリガーが別のトリガーを起動する場合)。多くの場合、開発者はトリガーがあるかどうかを調べることさえ考えません。

一方、FOOデータベースに新しいものが作成されるたびに実行する必要があるロジックがある場合、そのロジックを配置する最も確実な場所は、FOOテーブル上の挿入トリガーである可能性があります。

トリガーを使用するのは、行の変更日フィールドを設定するなど、非常に単純な場合のみです。

トリガーが必要かどうか判断に苦戦しており、ご意見をお聞かせいただければ幸いです。トリガーが必要な場合、実装時に考慮すべき最も重要な問題は何ですか?

ベストアンサー1

トリガーの主な問題は

  • これらは完全にグローバルであり、テーブル アクティビティのコンテキストに関係なく適用されます。
  • これらは隠密性があり、予期せぬ(そして非常に不可解な)結果であなたを傷つけるまで、それらがそこに存在することを忘れがちです。

これは、適切な状況で慎重に使用する必要があることを意味します。私の経験では、関係の整合性の問題に限定されており (宣言的に取得できるよりも細かい粒度になる場合もあります)、通常はビジネス目的やトランザクション目的ではありません。状況によって異なります。

おすすめ記事