2

相互に依存している複数のテーブルを更新する必要があるシナリオがあります。たとえば、多くのテキストボックス、チェックボックス、およびドロップダウンリストがある Web ページからの大きなデータとの関係があります。

jQuery.ajax を使用してデータを保存しています。新しいデータ保存方法がそこに書かれており、動作しています。

現在、更新目的で大量のデータを処理することは非常に困難です。

すべてのデータを削除して新しい行として保存するという考えがあります。これは良い考えですか?

Update メソッドを作成するために 1 週​​間を費やさなければならないこれらすべてのレコードを更新したことを思い出して、ここで何をしなければならないでしょうか。

このシナリオで私を導いてください。

4

1 に答える 1

2

あなたの質問はかなり漠然としていますが、私はあなたがこれを言っていると思います:

  • データベースにデータを挿入できます
  • 私のデータを更新するのは難しそうなので、DELETE してから INSERT をやり直すほうがいいと思います (既にそのコードを書いているため)。

これは悪い考えだと思いますが、それには次の理由があります (さらに多くの理由があることは間違いありません)。

  • 削除するだけの場合でも、削除する正しい行を特定したり、テーブルから正しい順序で削除したりする必要があります。したがって、とにかく多くの時間を節約できる可能性は低いです。
  • アプリケーションに不必要な複雑さと余分なメンテナンス作業を追加します: トランザクション処理、維持する追加コード、アクセス許可の変更など。
  • トリガーやプロシージャの形でサーバー側のロジックをデータベースに追加することは、より困難になります。これは、DELETE が必ずしも実際に DELETE を意味するわけではなく、UPDATE の開始を意味する可能性があるためです (物理的にではなく論理的に意味します)。これは、DML アクションまたはイベントに基づくコード、トレース、または監査を壊す可能性があるだけでなく、維持するのが非常に面倒です。
  • 1 つの操作を 2 つに分割したため、データベースはさらにログを記録する必要があります。

おそらく、UPDATE を避けたい正当な理由があるかもしれませんが、「書くのが難しい」という理由はその 1 つであってはなりません (状況を単純化しすぎている場合は申し訳ありません)。

「難しい」とは何かを正確に説明し、「大量のデータ」が何を意味するかについて背景を説明し、問題を説明するテーブル構造とコードを示すなどすると、より有用な回答が得られる場合があります。

于 2012-05-25T10:52:52.807 に答える