Я пытаюсь создать базу данных для системы чата между пользователями и группами. Эта система должна включать способ извлечения количества сообщений, непрочитанных в каждой комнате чата каждым пользователем.
Каким будет идеальный дизайн для эффективного извлечения этих данных?
Пока у меня есть этот дизайн:
UserSchema {
username: String,
password: String,
lastVisit: Date,
online: Bool
}
ChatSchema {
creator: UserId,
title: String,
description: String,
members: Array[UserId]
}
MessageSchema {
sender: UserId,
chatId: ChatId,
content: String,
media: Media
}
Для справки, я использую MongoDB и Mongoose для разработки схемы.