【问题标题】:Multiple data sources: data storage and retrieval approaches多数据源:数据存储和检索方法
【发布时间】:2011-04-14 19:37:40
【问题描述】:

我正在构建一个网站(可能在 Wordpress 中),该网站获取来自多个不同来源的数据以显示在各个页面上。

来源:

  • Twitter 提要
  • Flickr 供稿
  • 远程服务器上的数据库
  • 本地数据库

我将主要从每个来源中检索

  • 一个短字符串,例如用于 Twitter、Tweet 以及来自本地数据库的博客页面标题。
  • 关联图像(如果存在)
  • 从源头识别内容的链接

我的问题是:

a) 存储数据和 b) 检索数据的最佳方法是什么

我的想法是:

i) 编写一个脚本,在 cron 作业上每 2 分钟左右运行一次
ii) 脚本从所有来源检索数据并将其存储在本地数据库中
iii) 然后应用程序代码可以从本地数据库这一单一来源检索所有数据

这应该使应用程序代码更易于管理 - 我们只从应用程序代码中的一个来源提取数据 - 这是主要的吸引力。但对于一个相对较小的网站来说,这是否有点矫枉过正?

【问题讨论】:

    标签: database cron datasource merging-data


    【解决方案1】:

    我建议将 twitter 提要和 flickr 提要放在 JavaScript 中。 flickr 和 twitter 都有 REST API。通过将其放在客户端上,您可以释放服务器上的资源,减少复杂性,您的用户不会等待您的服务器获取数据,并且您可以让 twitter 和 flickr 为您缓存数据。

    这假设您了解 JavaScript。一旦你克服了 JavaScript 的怪癖,它就不是一门糟糕的语言。试试 Jquery。 JQuery Twitter pluginFlickery JQuery plugin。还有其他的,这只是 Google 的第一批结果。

    至于您在本地服务器和远程服务器上的数据,这将更多地取决于正在获取的数据。我会选择你能开发得最快并给出可接受结果的任何东西。如果这意味着从服务器到服务器进行 REST 调用,那就去吧。如果远程服务器响应缓慢,我会使用 AJAX REST API 方法。

    对于本地数据库,您将不得不为此编写服务器端代码,所以我会在 Wordpress“框架”内完成。

    希望对您有所帮助。

    【讨论】:

    • 我没有排除客户端的 REST 请求,但是有一些问题,包括 a) 你必须在客户端解析数据 b) 很难合并获得的数据过滤特定字段,例如创建日期
    • 我同意对于大多数开发人员而言,在所有条件相同的情况下,服务器端代码通常更快地编写和调试。但是,在像您这样的情况下,客户端 AJAX 通常明显更快,因为 AJAX 请求将并行而不是串行进行,并且页面可以在进行远程调用之前呈现。如果这对您不起作用,听起来像是在 PHP 中为他们的 REST api 编写一个包装器,然后在 Memcache 或 APC 中缓存可能是一个不错的选择。
    • 就检索数据而言,这很好,只是操纵它的一个例子。如果我说 8 种内容类型,例如博客文章、新闻项目、flickr 图片、推文等。如果我将数据存储在数据库中,那么显示所有按日期时间排序的内容会更容易,对于特定作者,每种类型恰好显示 4 个。但我想知道我是否对本质上是一个聚合不同页面内容的小型网站过于迂腐。
    • 会不会太迂腐了?
    猜你喜欢
    • 2012-07-13
    • 1970-01-01
    • 2013-09-04
    • 1970-01-01
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 1970-01-01
    • 2017-01-06
    相关资源
    最近更新 更多