【问题标题】:Property-values database属性值数据库
【发布时间】:2010-10-09 05:33:36
【问题描述】:

我有许多对象,每个对象都有任意数量的共享且不同的属性值对(更具体地说:文件及其相关属性 - 例如图像的宽度和高度值、专辑/艺术家/音乐文件的长度等)。我希望能够搜索具有特定属性/值(例如:按专辑)、按属性分组等的对象。

对于这种情况,您建议使用哪种数据库?由于模块化(即时添加更多属性的能力),以及公共属性小于所有属性的 20% 的事实,具有规范化表的标准 SQL 并不能真正削减它。我已经尝试使用“skinny data model”来解决这个问题;但是我遇到了严重的可扩展性问题。

是否有针对这种情况调整的专门数据库(首选 BSD 许可的解决方案)?或者为此调整标准 RDBM 的任何替代方法?

【问题讨论】:

  • 您的“瘦数据模型”也称为“实体属性值”或“EAV”,以防您想搜索更多相关信息。

标签: database sqlite entity-attribute-value sparql


【解决方案1】:

搜索具有某些属性的对象让我想到了 RDF 数据存储。看看一个 RDF API(参见 JENA,sesame,virtuoso)。

还是 BerkeleyDB?

【讨论】:

    【解决方案2】:

    查看各种云服务提供的数据库:

    如果不能选择云数据库,BerkelyDB 可能是一个不错的选择。

    【讨论】:

      【解决方案3】:

      您所说的称为EAV model 或triple store。以后可以用SPARQL查询

      【讨论】:

        【解决方案4】:

        皮埃尔是对的; Triplestore 是您想要的,而 RDF 是它的标准。 SPARQL 是查询它的标准语言(很像用于 RDBMS 的 SQL)。

        【讨论】:

          猜你喜欢
          • 2020-07-07
          • 2014-07-04
          • 1970-01-01
          • 2011-11-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-06-23
          • 2017-07-06
          相关资源
          最近更新 更多