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: