1

我正在开发第一个 JSON-RPC/JSON-REST API。JSON 的便利之一是它可以很容易地表示结构化数据(一个用户可能有多个电子邮件地址、多个地址)等......

例如,Facebook Graph API 很好地代表了可以方便地返回为 JSON 对象的类型: https ://fbcdn-dragon-a.akamaihd.net/hphotos-ak-ash3/851559_339008529558010_1864655268_n.png

然而,在使用关系数据库实现这样的 API 时,我们最终会将结构化对象分解成很多表(JSON 对象中的每个列表至少一个),并在响应请求时将它们分解。所以:

  • 需要大量建模(JSON 对象和 SQL 表的单独模型)。
  • 模型之间出现不一致:例如 user_id(在 SQL 中)与 userID(在 JSON 中)
  • 在一个模型和另一个模型之间编组内容非常耗时(乏味、容易出错且毫无意义的样板文件)。

在这种情况下存在哪些设计模式可以提供帮助?

4

1 回答 1

1

我不确定您是否正在寻找设计模式。我会寻找能够更好地处理这个问题的工具。

我假设您希望能够查询这些对象,而不仅仅是将它们存储在 TEXT 字段中。许多数据库都很好地支持 XML,所以我会将 JSON 转换为 XML(使用库),然后将其存储在数据库中。

您可能还需要考虑基于 JSON 文档的数据库。这肯定会让你到达你想去的地方。

如果您不需要能够查询这些,或者只需要查询非常小的字段子集,只需将对象存储为文本,然后将这些可查询字段提取到实际列中。这样您就不需要接触大部分数据,但您仍然可以查询您关心的少数字段。(此外,您可以索引它们以加快查找速度。)

于 2013-07-09T22:48:11.400 回答