Инфраструктура храниний и использований сессий в бд
В процессе написания проекта "мессенджер" пришел к идеи сессий вместо временных jwt, так как это надо было бы дополнительный обработчик писать для всей этой системы, а это как будто уже плохо. Но с толкнулся с логистической проблемой "У меня есть регистрация пользователя и смена пароля, все это происходит через разовые сессии" из этих двух моментов у меня выплыли проблемы, на данном этапе таблица сессий выглядит примерно так: sessionId, codeConfirm. И после подтверждения кода - запись просто удаляется, а в приложение просто нам позволяет перейти к основным действиям. Сейчас я понимаю, что это максимально легко обходится и нужно более сложное решение для таких действий. В моей голове рисуется несколько решений:
- Создание 3-х таблиц: id сессии регистрация, id сессии смены пароля и таблица со всеми кодами подтверждения

Но я не уверен, что в PosgreSQL возможно создать таблицу которая может хранить так данные (беря ссылки на поля из двух таблиц в одну ячейку)
Скинуть все в одну кучу, только с доп пометкой для чего эта сессия, добавив в компанию полей SessionId, CodeConfirm еще два столбца CreateAccount (эта сессия для создания аккаунта? - нет? Значит смена пароля) и поле Validation (верифицированная сессия или нет).
Этот вариант по мне кажется излишним, но возможно самый лучший из которых я могу использовать: 2 или 1 таблица с сессиями и кодами (типа sessionID + codeConfirms в одной и другой таблице), но после подтверждения кода отправлять их в redis для более быстрого доступа.
P.S весь сервер пишется на nodejs, для взаимодействия с бд юзаю sequelize