sql >> Base de Datos >  >> RDS >> PostgreSQL

Django JSONField dentro de ArrayField

Arreglos

En primer lugar, echemos un vistazo de cerca a este importante texto del documento Postgresql Arrays.

Consejo:las matrices no son conjuntos; la búsqueda de elementos de matriz específicos puede ser una señal de diseño incorrecto de la base de datos. Considere usar una tabla separada con una fila para cada elemento que sería un elemento de matriz. Esto será más fácil de buscar y es probable que se adapte mejor a una gran cantidad de elementos.

La mayoría de las veces, no debería usar arreglos.

JSONB

JSONB está disponible en Django como el tipo JSONField. Este campo es más escalable y flexible que los campos de matriz y se puede buscar de manera más eficiente. Sin embargo, si se encuentra buscando dentro de los campos JSONB todo el tiempo, la declaración anterior sobre Arrays es igualmente válida para JSONB.

Ahora, ¿qué tienes en tu sistema? Una matriz que contiene el campo JSONB. Esto es un desastre esperando a suceder. Normalice sus datos.

Resumen

entonces, ¿cuándo usar ArrayField?

En las raras ocasiones en que no necesita buscar en esa columna y no necesita usar esa columna para unirse.