我想知道如何设计一个数据库中的月度订阅软件系统。
这些系统在互联网上被广泛使用,尽管我找不到很多关于数据库设计的东西。
在我的案例中,这些元素(或许还有其他一些我忘记了的元素)必须包括在内:
- 客户
- 计划(如「基本」/「额外」)。每个计划有一个月的价格,和一个信用额度(例如: 基本计划提供30信用额度每月和保费计划无限信用)。
- 信用是在应用程序中花费的虚拟货币。
- 订阅/取消订阅
- 支付(注意实际支付的价格可能因为折扣等因素而与计划的基准价格不同)
- ... ?
除了数据库设计之外,还可能需要设置触发器来执行此操作(?)。
我的痛处:
- 我不能一概而论地看出它的全局设计是什么
- 数据库中哪一个应该是行: month _ susscrition (即每个客户机每月1行)还是订阅本身(即每个客户机1行) ?
- 如何处理每月订阅的自动续订?
- 如果你预见到使用贝宝这样的服务来处理自动月度支付,你会如何处理支付设计?
注意
我自愿不公开我的需求的细节,因为这样,辩论可以保持通用性,可以更有益于其他人。
谢谢你的帮助。