Как реализовать наследование в базе данных Мангуста для хорошей практики кодирования? - PullRequest
0 голосов
/ 24 января 2019

У меня есть 2 различных типа платежей, один должен получить бронирование, а другой - подписку.«Оплата бронирования принимается после того, как пользователь принимает бронирование», однако, «Оплата подписки» должна быть снята сразу после успешной проверки.Однако когда я попытался отобразить ожидающие платежи в своем приложении ANGULAR, я понял, что теперь у меня внутри одной и той же «Таблицы платежей» 2 разных типа платежей, некоторые из них недействительны, так как первая схема получает бронирование, а по другим платежам у меня естьподписка.

Я создал 2 разные схемы, но они слишком похожи, я хочу иметь хорошие методы кодирования, поэтому я хочу создать архитектуру наследования внутри своих схем Мангуста.Я также пытался использовать Schema.Types.Mixed, но мне не нравится такой подход, поскольку я считаю его небезопасным.

СХЕМА ПЛАТЕЖЕЙ

const rentalPaymentSchema = new Schema({
    fromUser: {type:Schema.Types.ObjectId, ref: 'User'},
    toUser: {type:Schema.Types.ObjectId, ref: 'User'},
    ...
    booking: {type:Schema.Types.ObjectId, ref: 'Booking'},
});
module.exports = mongoose.model('RentalPayment', rentalPaymentSchema );

СХЕМА ПОДПИСКИ

const subscriptionPaymentSchema = new Schema({
    fromUser: {type:Schema.Types.ObjectId, ref: 'User'},
    toUser: {type:Schema.Types.ObjectId, ref: 'User'},
    ...
    susbscription: {type:Schema.Types.ObjectId, ref: 'Subscription'},
});
module.exports = mongoose.model('SubscriptionPayment', subscriptionPaymentSchema );

Как объединить обе схемы в одну, имеющую все общие атрибуты, а затем создать еще две схемы, которые наследуются от родительской?Заранее спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...