我正在尝试为用户和组之间的聊天系统设计一个数据库。该系统需要包括一种获取每个用户在每个聊天室中未读消息的数量的方法。
最有效地获取此数据的理想设计是什么?
到目前为止,我已经设计好了:
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用于架构设计。