Дизайн БД: модель подписки / счета - PullRequest
0 голосов
/ 04 сентября 2018

Итак, передо мной была поставлена ​​задача реорганизовать базу данных для одного из наших существующих приложений (чтобы нормализовать и реструктурировать некоторые из более гигантских таблиц), и я изо всех сил пытаюсь придумать надежный дизайн для обработки платежей нашему сервису.

Справочная информация

Наш сервис предлагает различные планы (личные, семейные, бизнес и т. Д.), Которые поставляются с ежемесячной и годовой подпиской.

Мы используем Stripe в качестве нашего платежного шлюза для личных и малых бизнес-пользователей, но также предлагаем возможность оплаты по счету для наших крупных клиентов. То, что я чувствую, заключается в том, в чем заключается большая сложность, пытаясь объединить их.

Для каждой подписки мы генерируем лицензионный ключ, предоставляемый каждому Пользователю, присоединенному к определенной учетной записи (для которой была приобретена подписка). Поэтому для каждой подписки я прилагаю к ней лицензионный ключ.

Конечная цель

В идеале я хотел бы иметь возможность отслеживать все платежи и подписки из обеих платежных воронок (Stripe & Manual Invoices) и управлять повторяющимися платежами (возобновление подписок, отмена просроченных подписок, изменение планов подписки, пробные версии, скидки и т. Д.).

Что у меня до сих пор

ERD Initial Design

Моему дизайну определенно предстоит пройти долгий путь, поскольку он слишком сложен (возможно, больше, чем нужно).

Но идея всего этого состояла в том, чтобы отследить все сделанные платежи (как Stripe & Invoice), а затем связать эти платежи с подпиской (и лицензией).

Любая помощь будет оценена по этому вопросу! :)

...