Pole
Nejprve se blíže podívejme na tento důležitý text z dokumentu Postgresql Arrays.
Tip:Pole nejsou množiny; hledání specifických prvků pole může být známkou chybného návrhu databáze. Zvažte použití samostatné tabulky s řádkem pro každou položku, která by byla prvkem pole. To bude snazší pro vyhledávání a pravděpodobně se bude lépe škálovat pro velký počet prvků.
Většinu času byste neměli používat pole.
JSONB
JSONB je k dispozici v Django jako typ JSONField. Toto pole je škálovatelnější a flexibilnější než pole pole a lze jej prohledávat efektivněji. Pokud však zjistíte, že neustále hledáte v polích JSONB, výše uvedené prohlášení o polích platí stejně pro JSONB.
Co teď máte ve svém systému? Pole, které obsahuje pole JSONB. Tohle je katastrofa, která čeká, až se stane. Prosím normalizujte svá data.
Shrnutí
kdy tedy použít ArrayField?
Ve vzácných případech, kdy nepotřebujete hledat v tomto sloupci a nepotřebujete tento sloupec použít pro spojení.