数组
首先,让我们仔细看一下Postgresql
Arrays文档中的这一重要文本。
提示:数组不是集合;搜索特定的数组元素可能是数据库设计错误的标志。考虑使用单独的表,该表的每个行都将是一个数组元素。这将更易于搜索,并且可能会针对大量元素进行更好地缩放。
大多数时候,您不应该使用数组。
JSONB
JSONB在Django中可作为JSONField类型使用。该字段比数组字段更具可伸缩性和灵活性,并且可以更有效地进行搜索。但是,如果您发现自己始终在JSONB字段中进行搜索,则上述有关数组的声明对JSONB同样有效。
现在您的系统中有什么?一个包含JSONB字段的数组。这是一场灾难,等待发生。请规范化您的数据。
回顾
那么什么时候使用ArrayField?
在极少数情况下,您不需要在该列中进行搜索,也不需要使用该列进行联接。



