Монго / Экспресс 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).

Наконец, я не вижу смысла в том, что я делал раньше. Кажется, что гораздо лучше и проще иметь одну модель, как указано выше. Я могу после этого сделать несколько отфильтрованных запросов, чтобы получить принятых друзей // ожидающих и т.д...

Поскольку я не уверен в своем выборе, я хотел бы получить совет по этому поводу.

Спасибо

0 ответов

Другие вопросы по тегам