Dav*_*Eyk 4 postgresql performance database-design key-value entity-attribute-value
对于Postgres 8.4 DB,我有一个非常完美的关系数据模式,但是我需要能够将任意键/值对与我的几个表相关联,分配的键按行变化.键/值对是用户生成的,因此我无法提前预测它们或纠缠有序的架构更改.
我有以下要求:
我看到以下可能的解决方案:
我担心查询性能,因为我希望有一天会有很多这些.我也关心程序员的表现,因为我必须构建,维护和使用这些东西.这里有明显的最佳方法吗?或者我错过了什么?
这正是PostgreSQL中hstore数据类型的用途.
http://www.postgresql.org/docs/current/static/hstore.html
它真的很快(你可以索引它)并且很容易处理.唯一的缺点是你只能存储字符数据,但你也遇到其他解决方案的问题.
索引支持"exists"运算符,因此您可以非常快速地查询存在特定键的行,或者查询特定属性具有特定值的行.
由于一些尺寸限制被取消,因此9.0甚至更好.