【问题标题】:choosing between arrays, json and hstore datatypes in postgres and rails在 postgres 和 rails 中选择数组、json 和 hstore 数据类型
【发布时间】:2016-08-12 06:19:38
【问题描述】:

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

例如,假设我有这些字段: parking_available:booleanpaid_parking:booleanfree_parking:booleanparking_price:integerreservation_required:boolean

因此,如果我使用arraysjsonhstore,那么我可以将storefetch 上述参数的值作为字符串而不考虑数据类型。但是我很困惑这里哪个更好,或者坚持使用各个数据库字段。有人能解释一下arraysjsonhstore 的用例以及它们的性能优势吗?

【问题讨论】:

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


    【解决方案1】:

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

    虽然在字典中存储字符串以外的其他类型可能并不常见,但仍然值得记住的是,hstore 仅支持字符串数据。

    ...

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

    ...

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

    根据我对上述来源的解释,您应该使用 JSON 或 JSONB(如果您已经使用 PostgreSQL 9.4+ 或没有阻止因素更改为 9.4+)

    【讨论】:

    • 那篇文章不是推荐jsonb优于json吗??
    • 是的,看起来是这样。就我个人而言,我没有研究过 PostgreSQL 中的 JSONB。所以我想出 JSON 来推荐给你。我的错。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 2014-04-10
    • 2011-01-09
    • 2014-03-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多