2009-02-22 54 views
1

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

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

是否有针对此方案进行调整的专用数据库(首选BSD许可解决方案)?或者为此调整标准RDBM的其他方法?

+0

如果您想更多地了解它,您的“瘦数据模型”就是a.k.a.“entity attibute value”或“EAV”。 – ChrisW 2009-02-23 00:08:17

回答

2

搜索具有某些属性的对象会让我考虑RDF数据存储。看看RDF API(请参阅JENA,芝麻,演奏家)。

还是BerkeleyDB?

0

皮埃尔是对的;三重商店就是你想要的,而RDF就是这个标准。 SPARQL是查询它的标准语言(很像RDBMS的SQL)。