Existují dva typy, které jsou zvláště vhodné pro ukládání slovníků jako celek:hstore
a json
- nebo většinou lepší jsonb
v Postgresu 9.4 nebo novějším.
Postgres má také vyhrazený xml
datový typ, ale raději bych zvolil jednu z předchozích tří možností. XML je poměrně podrobný a složitější (neříkat spletitý) a může být pro váš účel přehnaný.
Pokud od DB chcete pouze uložit a načíst celý slovník, jsou to dobré možnosti. Viz:
Najdete zde také rozsáhlou diskuzi o výhodách a nevýhodách v souvislosti s eav (entity-attribute-value) úložiště v relačních databázích.
Pokud chcete od DB další věci, jako je referenční integrita, cizí klíče nebo různá další omezení, snadný přístup k jednotlivým hodnotám, minimální velikost úložiště, jednoduché indexy atd. Navrhuji jednu nebo více tabulek s vyhrazeným (normalizováno ) sloupce.
Normalizované rozložení tabulky
Z toho, co jsem zjistil, "MyObject" (m ) obsahuje kolekci odkazů na "OtherObject" (o ). Každý m souvisí s (24) o a každý o souvisí s 0-n m - který lze implementovat v klasickém vztahu n:m. Zde jsou podrobné pokyny: