我应该将 JSONB 用于基于整数的数组吗?

Moh*_*osh 3 postgresql

我需要在每行的数组中存储一个 id 列表。我想使用 JSONB,然后将其存储为 : {ids: [1, 2, 3, 4]}。然后,我找到了Array类型,我可以用它直接将 id 存储到其中。问题是,我的案例推荐的数据类型是什么?

Cra*_*ger 7

除非您有充分的理由不这样做,否则建议的存储始终是标准化的。

将整数存储在一个单独的表中(other_row_id, the_integer)并加入它们。

如果必须使用数组,请使用 PostgreSQL 的本机数组ARRAY[1,2,3]

将它们按原样存储jsonb是一种非常低效和笨拙的方法,基本上没有任何优势。

  • @MTCoster 我会说效率与其说是目标,不如说是规范化的副作用:现代 DBMS 针对规范化数据进行了优化*因为*规范化被视为一件好事。规范化发明的主要驱动力是一致性和完整性。 (4认同)