【问题标题】:Non Relational Database , Key Value or flat table非关系数据库、键值或平面表
【发布时间】:2010-09-25 14:58:42
【问题描述】:

我的应用程序需要可配置的列,并且这些列的标题在开始时就已配置,如果关系数据库我会为此需要在 CodeA、CodeB 等表中创建通用列,因为它有助于对这些列进行 queeering(代码 A = 11)它还有助于显示值(如果该列存储代码和值)但现在我使用的是非关系数据库数据存储(而且我是新手),我应该遵循相同的旧方法还是应该使用集合(键值对)结构类型。

这些列上会有很多过滤器。请推荐

【问题讨论】:

  • NoSQL 不具备 SQL 的查询能力。为什么在这里选择 NoSQL?当你说可配置的列是什么意思?请解释一下。
  • 我正在使用 Google Apps,而数据存储区是唯一可用的数据库。可配置列的意思是,假设我说我的记录可以有十个维度,但是当我创建实例时,我定义了哪个维度意味着什么......就像在帐户系统中一样,有些人可能希望将产品配置为一个维度,而其他客户可能喜欢 Project 在产地。

标签: gwt nosql datastore


【解决方案1】:

您刚才描述的是 Key-Value 数据库的经典场景之一。这里的限制是你不会拥有很多你习惯的基于集合的工具。

大多数 K-V 数据库都非常擅长加载一个“记录”或其中的一小部分。但是,它们往往不擅长加载可能需要连接的任何内容。鉴于您使用的是 AppEngine,您可能会欣赏这种限制。但值得一提。

作为重要说明,并非所有 K-V 数据库都允许您“按任意列选择”。许多 K-V 商店实际上只允许通过主键进行选择。如果您看一下 MongoDB,您会发现您可以查询任何听起来像是必要功能的列。

【讨论】:

    【解决方案2】:

    我建议使用键/值对,其中键将作为列名,值将作为它们的数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-12-28
      • 2010-09-12
      • 1970-01-01
      • 2010-09-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-14
      相关资源
      最近更新 更多