Схема базы данных для подписок на платные услуги
От: sin_cos Земля  
Дата: 23.11.16 14:21
Оценка:
запощу-ка здесь, вроде как для .net тоже актуально:


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

plans(name, price, how_many_months)
orders(name, plan_id, user_id)
payments(order_id, status, date)


в payments в status может быть pending, canceled, paid, refund, что-то еще.

никак не соображу -- этого достаточно? легко ли будет определить какой сейчас текущий plan у пользователя отфильтровав payments, которые paid, и его характеристики: продолжительность, когда начинается, когда кончается и т.п.?
или нужно еще что-то ввести? а если пользователь купит 2 плана, чтобы когда один закончился, сразу начал действовать второй?


повторюсь, что не хотелось бы денормализовывать схему путем добавления данных, которые итак могут быть расчитаны путем join'ов.
Отредактировано 23.11.2016 14:40 sin_cos . Предыдущая версия . Еще …
Отредактировано 23.11.2016 14:25 sin_cos . Предыдущая версия .
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.