Монго / Экспресс FriendShip Модель
Хотелось бы получить несколько советов по модели FriendShip, так как я видел несколько примеров, но не все дают одну и ту же схему.
Из моего POV кажется хорошим иметь отдельную схему, которая работает на граничных отношениях между двумя людьми. Что-то вроде этого:
let FriendShipSchema = new mongoose.Schema({
user1: {
type: mongoose.Schema.ObjectId,
ref: 'User',
},
user2: {
type: mongoose.Schema.ObjectId,
ref: 'User',
},
status:Number,
createdAt:{
type:Date,
default:Date.now
},
updatedAt:Date,
notification1:{
type:number,
default:2
}
});
Пользователь1 - это тот, кто сделал запрос. Статус соответствует ожидающему, принятому, отклоненному, заблокированному (может иметь два значения в зависимости от пользователя). Уведомление 2 для пользователя 2 - 1 для пользователя1 // 0 ничего
Я видел некоторых людей, которые также хранят FriendList в пользовательской модели. Сначала я сделал что-то, где я сохранял запрос в обеих пользовательских моделях с чем-то похожим, как описано выше (очевидно, без user2).
Наконец, я не вижу смысла в том, что я делал раньше. Кажется, что гораздо лучше и проще иметь одну модель, как указано выше. Я могу после этого сделать несколько отфильтрованных запросов, чтобы получить принятых друзей // ожидающих и т.д...
Поскольку я не уверен в своем выборе, я хотел бы получить совет по этому поводу.
Спасибо