サービスからのローカル メタデータとキャッシュに使用されるローカル sqlite データベースを更新しますか?

StackOverflow https://stackoverflow.com/questions/2714402

質問

サイト内を検索しましたが、私の質問に完全に答える質問/回答は見つかりませんでした。私が見つけた最も近い質問/回答は次のとおりです。 2 つの異なるシステム間でオブジェクトを同期する最良のアプローチ.

とにかく始めに、利用可能な RSS フィードがないため、Web ページの画面をスクレイピングしています。そのため、フェッチが行われ、Web ページを通過して興味のある情報をすべてスクラップし、その情報をダンプします。 sqlite データベースを使用すると、Web サイトから繰り返し取得することなく、いつでも情報をクエリできるようになります。

ただし、sqlite db に保存されているデータ自体のさまざまなメタデータも保存しています。データを見たことがありますか、データは新しいか古いか、データの塊へのブックマーク (関連のないデータのコレクションと考えてください。ブックマークは、データの処理/読み取りのどこにいるのかを示す単なるポインタです) )。

したがって、現時点での私の現在の問題は、効果的かつ簡単な方法で、Web サイトからの新しいデータや変更されたデータを使用してローカルの sqlite データベースを更新する方法を見つけようとすることです。

私の現在のアイデアは次のとおりです。

  1. ページ自体をダウンロードする
  2. 解析されたデータを格納するための一時テーブルを作成します。
  3. 公式テーブルと一時テーブルを比較し、更新情報や新しい情報を公式テーブルにコピーします。

一時テーブル内のデータが新しいか、更新されたか、または変更されていないかを判断する方法を理解する必要があるため、このプロセスはやや複雑に思えます。そこで、より良いアプローチはないのか、あるいはそのようなシステムをアーキテクチャ/構造化する方法について誰かが提案を持っているのかどうか疑問に思っています。

編集1:追加情報をコメントまたは編集のどこに記載すればよいかわからないので、ここに追加します。

これは、ブックマークに関するメタデータを少し拡張したものです。基本的に、データ ソースは新しいデータを作成したり、現在のデータに追加したりできるため、一時テーブルのアイデアを実行しようと考えた理由の 1 つは、次のことを判断できるようにするためでした。 「ブックマーク」されたデータ ソースに新しいデータがあるかどうか。

役に立ちましたか?

解決

一時テーブル内のデータが新しいか、更新されたか、または変更されていないかを判断することは本当に重要ですか?本当に変更履歴を保存する必要がありますか?

いいえ:一時テーブルを使用せず、古いレコードに古いとしてマーク (タイムスタンプ) を付けるだけで、更新は行わず、新しいデータを挿入するだけです。

はい:あなたの考えは正しいように思えますが、すべては毎回処理する必要があるデータの量によって異なります。データ量が多いと無理だと思います。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top