PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Django JSONField dans ArrayField

Tableaux

Tout d'abord, examinons de près ce texte important du document Postgresql Arrays.

Astuce :les tableaux ne sont pas des ensembles; la recherche d'éléments de tableau spécifiques peut être le signe d'une mauvaise conception de la base de données. Envisagez d'utiliser un tableau séparé avec une ligne pour chaque élément qui serait un élément de tableau. Cela sera plus facile à rechercher et est susceptible de mieux s'adapter à un grand nombre d'éléments.

La plupart du temps, vous ne devriez pas utiliser de tableaux.

JSONB

JSONB est disponible dans Django sous le type JSONField. Ce champ est plus évolutif et flexible que les champs de tableau et peut être recherché plus efficacement. Cependant, si vous cherchez constamment dans les champs JSONB, la déclaration ci-dessus concernant les tableaux est également valable pour JSONB.

Maintenant, qu'est-ce que vous avez dans votre système ? Un tableau contenant le champ JSONB. C'est une catastrophe imminente. Veuillez normaliser vos données.

Récapitulatif

alors quand utiliser ArrayField ?

Dans les rares cas où vous n'avez pas besoin de rechercher dans cette colonne et que vous n'avez pas besoin d'utiliser cette colonne pour une jointure.