PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Django JSONField all'interno di ArrayField

Array

Prima di tutto, diamo un'occhiata da vicino a questo importante testo del documento Postgresql Arrays.

Suggerimento:le matrici non sono insiemi; la ricerca di elementi di array specifici può essere un segno di progettazione errata del database. Prendi in considerazione l'utilizzo di una tabella separata con una riga per ogni elemento che sarebbe un elemento dell'array. Sarà più facile da cercare ed è probabile che si ridimensionerà meglio per un gran numero di elementi.

La maggior parte delle volte, non dovresti usare gli array.

JSONB

JSONB è disponibile in Django come tipo JSONField. Questo campo è più scalabile e flessibile rispetto ai campi array e può essere ricercato in modo più efficiente. Tuttavia, se ti ritrovi a cercare continuamente all'interno dei campi JSONB, l'istruzione sopra sugli array è ugualmente valida per JSONB.

Ora cosa hai nel tuo sistema? Una matrice che contiene il campo JSONB. Questo è un disastro in attesa di accadere. Normalizza i tuoi dati.

Riepilogo

quindi quando usare ArrayField?

Nella rara occasione in cui non è necessario eseguire ricerche in quella colonna e non è necessario utilizzare quella colonna per un join.