存储具有不同属性的实体(EAV替代)

时间:2013-05-08 08:07:46

标签: mysql ruby-on-rails mongodb entity-attribute-value

我正在寻找一种在关系数据库上存储类似EAV主题的方法。我将使用Rails + Mysql。我在PHP + Mysql中对EAV很少见。 ~500个条目。当然,没有什么,所有查询都很快(尽管没有查询缓存)。但如果一百万条记录呢?该怎么办?使用MongoDB?或许Sphinx可以在这种情况下提供帮助?或者也许SQL + NoSQL tandeme?

简而言之,最好的方法是什么? 附:我已经完成了Rails中的noob,用PHP切换,告诉我,可能是什么陷阱。

对不起我的英文)

2 个答案:

答案 0 :(得分:2)

我会说MongoDB,但如果由于某些原因你更喜欢使用普通数据库,你可以看看PostgreSQL和HStore扩展:http://www.postgresql.org/docs/9.2/static/hstore.html

在rails中使用它有宝石: https://github.com/engageis/activerecord-postgres-hstore

和Railscast一集:http://railscasts.com/episodes/345-hstore

答案 1 :(得分:1)

也许这些问题和文章会对你有所帮助:

最好启动正确的数据库架构,但在我看来,你应该考虑性能,何时需要它。