Postgresql 对于表列使用数组类型是否真的合适?

Postgresql 对于表列使用数组类型是否真的合适?,postgresql,Postgresql,在网上阅读关于PostgreSQL数组作为表列类型的文章时,我发现开发人员的普遍反应或意见是:“不要使用数组,最好使用另一个表,因为它的伸缩性更好” …我明白,这是我一直以来基本上做的事 我从来没有发现过任何情况下开发人员可以同意数组是最合适的。在任何情况下使用数组都是值得的吗?您可以在其内部表中找到Postgresql数组的示例(即pg\u类pg\u约束) 如果满足以下条件,阵列将是合适的: 您的数据库驱动程序/连接/应用程序正确地管理它们(并非所有的数据库驱动程序/连接/应用程序都正确地管理

在网上阅读关于PostgreSQL数组作为表列类型的文章时,我发现开发人员的普遍反应或意见是:“不要使用数组,最好使用另一个表,因为它的伸缩性更好”

…我明白,这是我一直以来基本上做的事


我从来没有发现过任何情况下开发人员可以同意数组是最合适的。在任何情况下使用数组都是值得的吗?

您可以在其内部表中找到Postgresql数组的示例(即
pg\u类
pg\u约束

如果满足以下条件,阵列将是合适的:

  • 您的数据库驱动程序/连接/应用程序正确地管理它们(并非所有的数据库驱动程序/连接/应用程序都正确地管理它们)

  • 您不需要筛选/查询数组中的数据(您需要数组中的所有数据,或者根本不需要)

  • 所以,完美的例子-
    pg_constraint.conkey

  • Postgres可以正确处理其数组:)

  • 它需要所有列来检查它们(或者如果未应用检查,则根本不需要它们)


  • UPD:在所有“适当”使用数组的情况下,我可以想到,它们都是0-10个元素的小数组。

    当出于性能原因有意对数组进行非规范化时,无论是使用物化视图还是使用主数据,数组都很有用。不过,它们主要用于查询,而不是数据存储。