在postgres和rails中选择数组,json和hstore数据类型

时间:2016-08-12 06:19:38

标签: ruby-on-rails arrays json postgresql hstore

我有一些与其他字段相关的字段,我认为将它放在一个数据库列中会更清晰。

例如,假设我有以下字段: parking_available:boolean paid_parking:boolean free_parking:boolean parking_price:integerreservation_required:boolean

因此,如果我使用arraysjsonhstore,那么我可以storefetch将上述参数的值按顺序排列,而不考虑数据类型。但我很困惑哪一个在这里更好或坚持个别数据库字段。有人可以解释arraysjsonhstore的用例以及这些用例的效果吗?

1 个答案:

答案 0 :(得分:1)

虽然它直接没有回答你的问题,How to persist hashes in rails application with postgresql陈述了关于hstore,JSON和JSONB

  

虽然在字典中存储除字符串之外的其他类型可能不常见,但仍然需要记住 hstore 仅支持字符串数据。

     

...

     

它( JSON )支持嵌套对象和更多数据类型。它还有更多的操作符,这些操作符在文档中有很好的描述。如果您已经在应用程序的某个地方使用JSON并希望将其直接存储在数据库中,那么JSON数据类型是完美的选择。

     

...

     

如果您仍然想知道MongoDB是否是您需要的更好选择,请检查9.4版postgres中引入的 JSONB 支持,这是具有二进制存储和索引的真实数据类型,用于存储的结构化格式JSON

根据我对上述来源的解释,你应该使用JSON或JSONB(如果你已经使用PostgreSQL 9.4+或没有抑制因子改为9.4 +)