Има два типа, особено подходящи за съхраняване на речници като цяло:hstore
и json
- или най-добрият jsonb
в Postgres 9.4 или по-нова версия.
Postgres също има специален xml
тип данни, но бих предпочел да избера една от предишните три опции. XML е сравнително многословен и по-сложен (да не кажа сложен) и може да е пресилен за вашата цел.
Ако всичко, което искате от DB, е да съхранявате и извличате целия речник, това са добри опции. Вижте:
Ще намерите също обширна дискусия за плюсовете и минусите около eav (entity-attribute-value) съхранение в релационни бази данни.
Ако искате други неща от DB, като референтна цялост, външни ключове или различни други ограничения, лесен достъп до индивидуални стойности, минимален размер за съхранение, прости индекси и т.н. Предлагам една или повече таблици със специално (нормализиран ) колони.
Нормализирано оформление на таблица
От това, което разбирам, "MyObject" (m
) съдържа колекция от препратки към „Друг обект“ (o
). Всеки m
е свързано с (24) o
и всеки o
е свързано с 0-n m
- които могат да бъдат реализирани в класическа връзка n:m. Ето подробни инструкции: