Esistono due tipi particolarmente adatti per memorizzare dizionari nel complesso:hstore
e json
- o il per lo più superiore jsonb
in Postgres 9.4 o versioni successive.
Postgres ha anche un xml
tipo di dati, ma preferirei scegliere una delle tre precedenti opzioni. XML è relativamente dettagliato e più complesso (per non dire contorto) e potrebbe essere eccessivo per il tuo scopo.
Se tutto ciò che desideri dal DB è archiviare e recuperare l'intero dizionario, queste sono buone opzioni. Vedi:
Troverai anche un'ampia discussione su pro e contro su eav (entità-attributo-valore) archiviazione in database relazionali.
Se vuoi altre cose dal DB, come integrità referenziale, chiavi esterne o vari altri vincoli, facile accesso ai singoli valori, dimensioni di archiviazione minime, indici semplici ecc. Ti suggerisco una o più tabelle con (normalizzato ) colonne.
Disposizione tabella normalizzata
Da quello che ho capito, "MyObject" (m
) contiene una raccolta di riferimenti a "OtherObject" (o
). Ogni m
è correlato a (24) o
e ogni o
è correlato a 0-n m
- che può essere implementato in una classica relazione n:m. Ecco le istruzioni dettagliate: