@protracer

Какую схему хранения выбрать?

Есть сущность account, которая содержит внутри себя еще несколько сущностей. Эти сущности просто подробнее описывают основную сущность. Например, в аккаунте лежит ссылка на профиль, игровой прогресс, аватар и прочее. Все имеет отношение один к одному. То бишь у аккаунта не может быть больше одного профиля, аватара и т.д.
В качестве основной бд решили использовать postgres, а за тип хранения взяли jsonb.
Собственно вопрос : как правильно хранить вложенные сущности? В виде отдельных полей, которые будут являться типом jsonb? Или каждую сущность выносить в отдельную таблицу, которая будет связана посредством внешнего ключа с сущностью account?
В первом способе смущает то, что при изменении аватара, к примеру, придется сохранять весь аккаунт целиком (если только spring-jpa не умеет апдейтить сущность по изменившемуся полю). Да и в коде будет везде торчать accountRepository, что несколько смущает.
Во втором способе смущает наличие повторяющихся внешних ключей (отношение один к одному, да и сам ключ в виде uuid) и джоины.
  • Вопрос задан
  • 107 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы