Der er to typer, der er særligt velegnede til at gemme ordbøger som helhed:hstore
og json
- eller den for det meste overlegne jsonb
i Postgres 9.4 eller nyere.
Postgres har også en dedikeret xml
datatype, men jeg vil hellere vælge en af de tidligere tre muligheder. XML er forholdsvis omfattende og mere kompleks (for ikke at sige indviklet) og kan være overdreven til dit formål.
Hvis alt du ønsker fra DB er at gemme og hente hele ordbogen, er disse gode muligheder. Se:
Du vil også finde en omfattende diskussion af fordele og ulemper omkring eav (entity-attribute-value) lagring i relationelle databaser.
Hvis du vil have andre ting fra DB'en, såsom referentiel integritet, fremmednøgler eller forskellige andre begrænsninger, nem adgang til individuelle værdier, minimal lagerstørrelse, simple indekser osv. Jeg foreslår en eller flere tabeller med dedikeret (normaliseret ) kolonner.
Normaliseret tabellayout
Ud fra hvad jeg har forstået, "MyObject" (m
) indeholder en samling af referencer til "OtherObject" (o
). Hver m
er relateret til (24) o
og hver o
er relateret til 0-n m
- som kan implementeres i et klassisk n:m forhold. Her er detaljerede instruktioner: