1

Webサービスインターフェイスを介して利用できるリモートデータベースのデータモデルを拡張したいと思います。データはHTTPGETを介してリクエストでき、JSONとして配信されます(リクエストの例)。他の形式もサポートされています。

// URL of the example request.
http://data.wien.gv.at/daten/wfs?service=WFS&request=GetFeature&version=1.1.0&typeName=ogdwien:BAUMOGD&srsName=EPSG:4326&outputFormat=json&maxfeatures=5

JSON回答の最初のオブジェクト。

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
       "id": "BAUMOGD.3390628",
       "geometry": {
          "type": "Point",
          "coordinates": [
             16.352910973544105,
             48.143425569989326
          ]
       },
       "geometry_name": "SHAPE",
       "properties": {
          "BAUMNUMMER": "1022 ",
          "GEBIET": "Strassen",
          "STRASSE": "Jochen-Rindt-Strasse",
          "ART": "Gleditsia triacanthos (Lederhülsenbaum)",
          "PFLANZJAHR": 1995,
          "STAMMUMFANG": 94,
          "KRONENDURCHMESSER": 9,
          "BAUMHOEHE": 11
       }
    },
...

私の考えは、自分のサーバーでデータモデルを拡張して(たとえば、テキストフィールドを追加して)、データベースを何らかの形でミラーリングすることです。私は、前述のJSONオブジェクトを処理するのに適していると思われるCouchDBとそのドキュメントベースのアーキテクチャに出くわしました。ここで、外部データベースを最初定期的に複製する方法についてアドバイスを求めます。

CouchDBは良い選択だと思いますか?MongoDBについても考えました。可能であれば、レプリケーションをセットアップするために完全なRailsバックエンドを構築することは避けたいと思います。おすすめは何ですか?

4

1 に答える 1

0

リモート データベースが静的 (データが変更されない) の場合は、機能する可能性があります。すべてのレコードを反復する方法を見つけるだけです。それが分かれば、残りは円グラフのように単純です。1) データのクエリ。2) 応答をローカル データベースに保存します。3) 必要に応じて変更します。

リモートデータが変更された場合、この方法で多くの問題が発生します (時々同じ方法で再同期する必要があります)。代わりに、新しいフィールドと元のデータへの参照のみを持つローカル データベースを作成します。つまり、リモート サービスからデータを要求する場合、ローカル データベースに何かがあるかどうかも確認し、最終結果を処理する前にそれら 2 つをマージします。

于 2012-04-26T00:01:06.473 に答える