Для хранения контактной информации в базе данных лучше всего использовать отдельную таблицу для контактных данных пользователей, чтобы избежать возможных проблем с производительностью и структурой данных.
В случае вашего пет-проекта на Java Spring, где пользователи могут указывать phoneNumber и telegramUsername при регистрации, предпочтительнее использовать отдельную таблицу для хранения контактной информации пользователей. Вы можете создать класс ContactInfo с полями phoneNumber и telegramUsername, который связывается с классом User "0..1 к 1". Этот подход позволит вам легко получать и обновлять контактные данные пользователей.
Создание отдельных таблиц для phoneNumber и telegramUsername может быть избыточным и усложнить структуру базы данных, так как в вашем случае оба поля могут быть заполнены одновременно или одно из полей может остаться пустым. Такой подход может привести к дублированию данных и усложнению запросов к базе данных.
Оптимальным решением для вашего проекта будет создание отдельной таблицы для контактной информации пользователей, где будут храниться оба поля phoneNumber и telegramUsername. Это позволит вам эффективно хранить и управлять контактной информацией пользователей, избежать дублирования данных и упростить запросы к базе данных.
Есть также альтернативный вариант решения данной задачи, который заключается в создании дополнительного столбца в таблице User для хранения контактной информации. Однако этот подход может быть менее структурированным и менее эффективным с точки зрения управления данными.