Det finns två typer som är särskilt lämpade för att lagra ordböcker som helhet:hstore
och json
- eller den mestadels överlägsna jsonb
i Postgres 9.4 eller senare.
Postgres har också en dedikerad xml
datatyp, men jag skulle hellre välja ett av tidigare tre alternativ. XML är jämförelsevis utförligt och mer komplext (för att inte säga invecklat) och kan vara överdrivet för ditt syfte.
Om allt du vill ha från DB är att lagra och hämta hela ordboken är dessa bra alternativ. Se:
Du hittar också omfattande diskussioner om för- och nackdelar kring eav (entity-attribute-value) lagring i relationsdatabaser.
Om du vill ha andra saker från DB, som referensintegritet, främmande nycklar eller olika andra begränsningar, enkel tillgång till individuella värden, minimal lagringsstorlek, enkla index etc. Jag föreslår en eller flera tabeller med dedikerad (normaliserad ) kolumner.
Normaliserad tabelllayout
Enligt vad jag förstår, "MyObject" (m
) innehåller en samling referenser till "OtherObject" (o
). Varje m
är relaterad till (24) o
och varje o
är relaterad till 0-n m
- som kan implementeras i ett klassiskt n:m-förhållande. Här är detaljerade instruktioner: