gpt4 book ai didi

sql - Postgres 使用 JSONB 列而不是定义的列

转载 作者:行者123 更新时间:2023-11-29 14:10:31 28 4
gpt4 key购买 nike

Postgres 对 JSON(甚至索引)有很多支持。我只想放置 1 个名为 everything 的 jsonb 字段,而不是定义一堆类型化的列(mongodb 样式)。

但我认为这是个坏主意。我的问题是:我为什么不应该这样做?唯一的缺点是它可能会占用额外的存储空间吗?

(我的表有很多可选字段,这就是我要这样做的原因)

最佳答案

我能想到几个原因:

  • 如果 JSON blob 具有指向其他列的外键,我认为您不能添加 REFERENCES 约束。

  • 对于列,您可以非常轻松地执行 NOT NULL 约束,但是对于 JSON,您必须为每个必需的值编写 CHECK 约束。

  • JSON 的类型少于 Postgres。例如,没有日期/时间/时间戳,没有间隔,没有范围,只有一种数字类型,没有 IP 地址,没有二进制数据。

  • 随着时间的推移,如果您在 JSON 结构中添加/移动/删除字段,您会发现旧行变得过时并且您的应用无法理解 JSON。使用常规列会强制您使整个表格保持最新状态。

关于sql - Postgres 使用 JSONB 列而不是定义的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37888681/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com