Всем привет!
Посоветуйте архитектуру БД для чата с историей.
Есть таблица
user, поля:
- userId - уникальный id для каждого пользователя в системе
- name - имя пользователя
Каждый пользователь может начать диалог с другим пользователем, нужно хранить переписку (текст, дата отправки) и количество непрочитанных сообщений. Между любыми двумя пользователями может быть только один чат. Чаты приватные, не групповые (макс 2 человека). Хранить последние 1000 сообщений.
Можно добавить в черный список собеседника (игнор).
Нужно эффективно, за один запрос получить все чаты (собеседников) для конкретного пользователя (за исключением игнорируемых собеседников), сортировка - сначала непрочитанные сообщения, затем по дате последнего обновления.