Tablice
Przede wszystkim przyjrzyjmy się bliżej temu ważnemu tekstowi z dokumentu Postgresql Arrays.
Wskazówka:tablice nie są zestawami; wyszukiwanie określonych elementów tablicy może być oznaką nieprawidłowego projektu bazy danych. Rozważ użycie oddzielnej tabeli z wierszem dla każdego elementu, który byłby elementem tablicy. Będzie to łatwiejsze do wyszukiwania i prawdopodobnie będzie lepiej skalowane dla dużej liczby elementów.
W większości przypadków nie powinieneś używać tablic.
JSONB
JSONB jest dostępny w Django jako typ JSONField. To pole jest bardziej skalowalne i elastyczne niż pola tablicowe i można je przeszukiwać wydajniej. Jeśli jednak będziesz cały czas przeszukiwać pola JSONB, powyższe stwierdzenie dotyczące tablic jest równie ważne dla JSONB.
Co teraz masz w swoim systemie? Tablica zawierająca pole JSONB. To katastrofa, która czeka, aby się wydarzyć. Proszę znormalizować swoje dane.
Podsumowanie
więc kiedy używać ArrayField?
W rzadkich przypadkach, gdy nie musisz szukać w tej kolumnie i nie musisz używać tej kolumny do przyłączenia.