mca*_*edo 7 sql database-design atk4
我正在编写一个应用程序,它将涉及每月(或每周)固定金额的重复计费,并且可以持续到订阅被取消.客户可以提前支付几个期间.他可以取消订阅,然后在某些无薪期后回来.我需要系统让我知道一段时间过期.
所以我在如何设计数据库(可能不是数据库问题而是编程问题)上大肆宣传,
有没有人来这种应用?采取了什么方法?
我认为你把事情搞得太复杂了。
创建表用户:
pk id_user
nm_user
fl_status (active, canceled, pendent, etc)
Run Code Online (Sandbox Code Playgroud)
创建一个表订阅,一个用户可以订阅多个订阅:
pk id_subscription
fk id_user
fl_type (maybe there are different subscriptions, with different prices)
dt_in
dt_out
Run Code Online (Sandbox Code Playgroud)
创建一张付款单订阅多笔付款的表:
pk id_payment
fk id_subscription
fl_type (card, payment order, something else)
fl_status (generated, sent, confirmed, canceled because of subscription canceled, canceled because of something else, etc)
dt_generated
dt_sent
dt_confirmed
dt_canceled
[I think you will need another fields to follow and confirm the payment, but it depends of your payment model)
Run Code Online (Sandbox Code Playgroud)
现在您需要构建一些每天在某个特定时间运行的机器人。
如果您获取所有活跃客户以及每个客户的最后付款,如果最后确认的付款与实际日期相比超过 x 天,您将知道是否需要生成新付款(这取决于是否是预付款、后付款) , ETC)。如果是,则生成新的付款订单。
机器人将发送一封电子邮件或包含订单的内容(然后标记为)。
另一个机器人将使用您的付款模式确认付款。
当然,您需要很好地定义您的模型,因为每个用户状态都需要一个机器人来让事情继续下去,直到它被取消或因为缺乏付款而被发送给法官。有很多工作要做,但没什么大不了的。
PS:如果它是一个更复杂的系统,数据库将持续存在,您将拥有您需要的所有信息,您有每个订单的日志,您知道每个订单发生了什么,因为它们有日期和状态。您可以每月估计有多少个到期日,一天后、两天后将支付多少个到期日,等等。