1

我想扩展通过Web 服务接口可用的远程数据库的数据模型。可以通过 HTTP GET 请求数据,并以 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
       }
    },
...

我的想法是在我自己的服务器上扩展数据模型(例如添加一个文本字段),从而以某种方式镜像数据库。我偶然发现了CouchDB及其基于文档的架构,感觉适合处理上述 JSON 对象。现在,我就如何最初定期复制外部数据库征求意见。

您认为 CouchDB 是一个不错的选择吗?我也想过MongoDB。如果可能的话,我想避免构建一个完整的 Rails 后端来设置复制。你有什么建议吗?

4

1 回答 1

0

如果远程数据库是静态的(数据不变),那么它可以工作。您只需要找到一种方法来迭代所有记录。一旦你弄清楚了,剩下的就很简单了:1)查询数据;2) 将响应存储在本地数据库中;3)修改你认为合适的。

如果远程数据发生变化,您会遇到很多麻烦(您必须每隔一段时间以相同的方式重新同步)。我要做的是创建一个只有新字段和对原始数据的引用的本地数据库。也就是说,当您从远程服务请求数据时,您还会查看本地数据库中是否有某些内容,并在处理最终结果之前合并这两者。

于 2012-04-26T00:01:06.473 回答