我有一些与其他字段相关的字段,我认为将它放在一个数据库列中会更清晰。
例如,假设我有以下字段:
parking_available:boolean
paid_parking:boolean
free_parking:boolean
parking_price:integer
和reservation_required:boolean
因此,如果我使用arrays
,json
或hstore
,那么我可以store
和fetch
将上述参数的值按顺序排列,而不考虑数据类型。但我很困惑哪一个在这里更好或坚持个别数据库字段。有人可以解释arrays
,json
和hstore
的用例以及这些用例的效果吗?
答案 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 +)