0

アトム フィードを使用して、 Webサービスから病気、国、ワクチンに関する情報を取得し、データベース テーブルを定期的に更新しています。Web サービスを呼び出すたびに、最終更新日を比較し、新しい情報が利用可能であれば、テーブルを空にしてすべてのデータを再度挿入します。

しかし、データは非常に大きく、プロセス中に何らかのエラーが発生した場合、テーブル全体が空のままになります (更新の最初にテーブルを切り捨てるため)。

最初にデータを一時テーブルに挿入し、成功したら空にして実際のテーブルにコピーすることを考えています。しかし、これが正しい解決策であるかどうか、また他に優れた解決策が存在するかどうか、専門家の意見を聞きたいと思います。(私はPHPとmysqlを使用しています)

前もって感謝します

4

1 に答える 1

0

私があなたの場合、データベースで 3 つのテーブルを使用します。最初のテーブルは現在のデータを保持するために使用され、2 番目のテーブルは新しいデータを保持するために使用され、最後のテーブルは古いデータのために使用されます。

そして、これがそれらと遊ぶ方法です:

  1. スクリプトが Web サービスからデータを受け取ると、それを 2 番目のテーブル (新しいデータ) に置き、同時に最初のテーブル (現在のデータ) を 3 番目のテーブル (古いデータ) に移動します。

  2. いくつか比較して、それらの間に新しいものが見つかった場合は、それを現在のデータに入れます。

  3. 何かが正しくない場合でも、「古いデータ」に保存されている以前のデータに安全に置き換えることができます。

したがって、今後データを失うことはありません...お役に立てば幸いです...

于 2013-09-20T06:22:43.093 に答える