Arrays
Sehen wir uns zunächst diesen wichtigen Text aus dem Postgresql-Arrays-Dokument genauer an.
Tipp:Arrays sind keine Mengen; Die Suche nach bestimmten Array-Elementen kann ein Zeichen für ein falsches Design der Datenbank sein. Erwägen Sie die Verwendung einer separaten Tabelle mit einem Pfeil für jedes Element, das ein Array-Element wäre. Dies erleichtert die Suche und lässt sich wahrscheinlich besser für eine große Anzahl von Elementen skalieren.
Meistens sollten Sie keine Arrays verwenden.
JSONB
JSONB ist in Django als JSONField-Typ verfügbar. Dieses Feld ist skalierbarer und flexibler als Array-Felder und kann effizienter durchsucht werden. Wenn Sie jedoch die ganze Zeit in JSONB-Feldern suchen, gilt die obige Aussage zu Arrays gleichermaßen für JSONB.
Was hast du jetzt in deinem System? Ein Array, das das JSONB-Feld enthält. Dies ist eine Katastrophe, die darauf wartet, passiert zu werden. Bitte normalisieren Sie Ihre Daten.
Zusammenfassung
wann sollte man also ArrayField verwenden?
In den seltenen Fällen, in denen Sie nicht in dieser Spalte suchen und diese Spalte nicht für einen Join verwenden müssen.