Каким будет оптимальный вид представления комплексных данных (таблица/json)?
Допустим, есть тип User с полями Id, Username, ..., GameProfile. GameProfile является комплексным типом с полями Rating, Nickname и т.д. Как лучше представлять подобные типы в базе данных? Делать сериализацию/десериализацию в json? Создавать отдельную таблицу? Не будет ли в случае создания отдельной таблицы упадок в производительности, т.к. при доступе к User.GameProfile придётся делать полный поиск по таблице GameProfiles? С другой стороны, при написании комплексных SQL запросов удобнее использовать отдельную таблицу
Если GameProfile - уникальная и самостоятельная сущность, которая много где ещё используется, и при этом может существовать без пользователя, то новую таблицу лучше сделать, и дать ей свой Id
Если GameProfile - value object (как дата например), то лучше сделать две дополнительные колонки в таблице с пользователями. Аналогично, если GameProfile не может существовать без пользователя и он всегда будет ровно один на одного пользователя