10

素朴な質問かもしれませんが、削除と更新は常に連鎖的に行われるべきだと思います。しかし、それには問題があるのか​​、それをすべきでないのはいつなのかを知りたかったのです。カスケード削除を行いたくないケースは今のところ思いつきませんが、確かにあると思います...しかし、更新は常に行う必要がありますか?

削除と更新のカスケードの長所と短所を教えてください。ありがとう。

4

3 に答える 3

12

長所:

  • 親テーブルから行を削除すると、すべての外部キー行が削除されます
  • これは通常、トリガーを使用して実装するよりも高速です
  • 孤立した行はありそうにありません

短所

  • 孤児は可能です
  • 誤って親テーブルの行を削除すると、対応する子テーブルのすべての行が削除され、削除した内容を把握するのはPITAになります。
于 2010-08-26T20:00:47.160 に答える
10

これは、テーブルに含まれているエンティティによって異なります。外部キーの側が主キーの側なしで存在できない場合は、カスケード削除を行うのが理にかなっています。

例:請求書が削除された場合、請求書の広告申込情報には存続する権利がありません。

しかし、従業員と上司との関係の「のために働く」関係に使用される外部キーがある場合、上司が会社を辞めた場合にその従業員を削除しますか?

さらに、技術的な問題は、依存テーブルエントリが変更された場合、それらが責任を負わずに一部のORM(オブジェクトリレーショナルマッピング)ツールが混乱することです。

于 2010-08-26T20:00:24.957 に答える
1

長所:

  • データの整合性-レコードが存在しなくなったものを参照している状況を回避するのに役立ちます。

短所:

  • パフォーマンス-カスケード削除/更新はsloooooooooooooooooooowになる可能性があります。
  • 複雑さ-私が一緒に仕事をしているほとんどの人はカスケードに慣れていないようです。そのため、カスケードを含む新しいプロジェクトを提供すると、これらのカスケードの1つを初めてトリガーしたときに少し驚いています。
  • 他の人がすでに述べたように、不適切に使用すると本当に物事を台無しにする可能性があります。
于 2010-08-26T20:00:04.177 に答える