PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Django JSONField dentro de ArrayField

Matrizes


Antes de tudo, vamos dar uma olhada neste importante texto do documento Postgresql Arrays.

Dica:Arrays não são conjuntos; procurar por elementos de array específicos pode ser um sinal de design incorreto do banco de dados. Considere usar uma tabela separada com arow para cada item que seria um elemento de matriz. Isso será mais fácil de pesquisar e provavelmente será melhor dimensionado para um grande número de elementos.

Na maioria das vezes, você não deve usar arrays.

JSONB


JSONB está disponível no Django como o tipo JSONField. Esse campo é mais escalável e flexível do que os campos de matriz e pode ser pesquisado com mais eficiência. No entanto, se você estiver pesquisando dentro de campos JSONB o tempo todo, a declaração acima sobre Arrays é igualmente válida para JSONB.

Agora, o que você tem em seu sistema? Uma matriz que contém o campo JSONB. Isso é um desastre esperando para ocorrer. Por favor, normalize seus dados.

Recapitulação


então quando usar ArrayField?

Nas raras ocasiões em que você não precisa pesquisar nessa coluna e não precisa usar essa coluna para uma junção.