属性值数据库

时间:2009-02-22 23:33:41

标签: database sqlite entity-attribute-value sparql

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

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

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

4 个答案:

答案 0 :(得分:2)

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

或BerkeleyDB?

答案 1 :(得分:0)

您所谈论的内容称为EAV模型或triple商店。稍后可以使用SPARQL

查询

答案 2 :(得分:0)

皮埃尔是对的;您想要的是三元店,RDF就是其中的标准。 SPARQL是查询它的标准语言(很像SQL for RDBMS)。

答案 3 :(得分:-1)

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

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