2017-10-31 5 views
0

私はこの状況がありますが、どちらが良いかわかりません。キャッシュシステムに追加する前または変換後のデータを変換するとき

私はサッカー選手ため検索、私は自分の名前とチームを持っていますが、ユーザーはプレーヤー私のウェブサイトへとクリックを来るとき、私は詳細な情報を使用します。このソリューションを持っていますプレーヤーから私はを様々な外部プロバイダ(通常国によって異なる)から入手します。

コールが完了したときに使用する外部プロバイダを知り、データを取得するたびに外部プロバイダに支払うため、これを軽減するために、できるだけ時間を短縮しようとします。ユーザーがプレーヤー情報をクリックし、次にデータベースキャッシュにある場合はキャッシュ情報を表示します。 10日後、私は何らかの形で情報を更新したいので、特定のプレーヤーのフォームを外部のプロバイダから再度取得します。

私は正しい方法それを扱うことができるように私自身の構造にJSONとして、通常、来異なるプロバイダのデータを変換する必要があります、私は私自身のオブジェクト構造を持っているので、フィールドは、外部から来ますプロバイダは、いつでも同じ命名と構造で私のコードで崩壊/マップ/変換を行います。

私の問題ははいつプロバイダから来るデータをマップ/変換すべきかを決定することです

  1. 私は、プロバイダからデータをつかむ、私は私のJSON構造とレコードにそれを変換/私の主な構造を持つ、と私のソリューションコードでは、この度、データベースキャッシュシステムに保管し、すべてのI私はデータベースのキャッシュからこのJSONフィールドを取得し、それをオブジェクトに直接変換する必要があります。どのように使用するのか知っています。私は私のデータベースキャッシュからJSONレコードを取得し、私のデータベースキャッシュシステムであり、そして私のソリューションコードで毎回誰かがサッカー選手詳細情報を取得するためにをクリックするよう
  2. 私は、プロバイダからデータをつかむ、はそれを維持します、は私が

ノートをobjectに私の命名および構造のためにそれを変換し、それを変換: - これはキャッシュデータベースで、レコードは永久に保持されることはありません、呼び出しに私が見た場合レコードは10日以上持っている私は新しい適切な外部プロバイダからのデータ

答えて

0

データをキャッシュするレイヤーを決定することは、すべて独自の方法です。データをキャッシュするレイヤーが高いほど、パフォーマンスが向上し(再処理が必要)、再利用の可能性は低くなります(アプリケーションのさまざまな部分で同じキャッシュが使用される可能性があります。あまりにも多く変換されている)。

これは別のケースです。プロバイダーが提供するようにそれを保管し、それを変換する方法を変更する必要がある場合は、再取得するために料金を支払う必要はありません。一方、必要に応じて保存する場合は、変換方法を変更する場合は、すべて破棄する必要があります。

すべてのアーキテクチャ設計の決定と同様に、それはすべてトレードオフです。あなたとあなたのアプリケーションにとってより重要なことを決める必要があります。

+0

ありがとう@ rob-conklin ...これはキャッシュです。情報は10日後に削除されます。Imはコストよりもパフォーマンスが優れています...変換/マッピングの変更によってキャッシュ全体が削除されるだけで、変換の変更は何かになりますそれはめったに起こりません。 – joaon1x

関連する問題