我正在建立一个网站,我将向客户收取费用。我想有6个月度或年度许可证选项,并且每个许可证都有一些不同的版本,每个版本都授予不同类型的网站访问权限。
此外,我还会为购买许可证添加一些可选附加功能。这些将是一次性购买更像产品而不是许可证。它们是网站的更多附加组件,可实现更多功能。一旦购买,你就可以保留它。所以一切都基于网站,没有运输担心。
这将以某种购物车的方式显示,他们可以选择他们想要的东西然后发送到Paypal进行处理。
只是想知道如何在我的数据库中正确建模?到目前为止,我已经提出:
基本上我试图将许可证和产品放在同一个表中,并使用标志列(licence_or_product)来区分这两者。这将有助于在网站上显示它是产品还是许可证。
是否值得拥有许可证* offering_start_date *和* offering_end_date *字段?如果我想以不同的价格提供新的许可证,我试图获得它以便我可以使该产品到期。这样,已经以该价格购买了许可证的客户始终保持该价格。如果我想更改价格,我会将提供结束日期设置为今天,然后在将来创建一个新的licence_products行,其价格更低但end_date。这是正确的方法吗?或者你只是直接编辑项目的价格?我只是想如果价格发生变化,那么客户想要退还该许可证,你如何追踪他们为该许可证支付了多少钱? amount_paid字段会告诉我整个订单的成本是多少,而不是现在已经更改的许可证的原始价格。我是否需要所有产品价格变化的历史记录?
其他我不知道该怎么办,让我们说他们已经购买了使用该网站一年的许可证。如何提取哪个是最新的许可证?假设我已经开始使用30天试用许可证,然后他们购买了年度许可证。我是否立即使试用许可证无效?我想我一次只想要一个有效的许可证。因此,如果他们在旧许可证到期之前购买另一个许可证,我不确定我的程序应该如何处理。
任何帮助非常感谢。感谢您!
P.S。这是SQLyog数据库模式和SQL,如果你想稍微重做它。
答案 0 :(得分:3)
我认为你应该创建以下3个表:
1.客户(客户或任何对您有意义的事),
2.许可证和
3. customer_license。
我建议customer_license表的以下字段:
通过这种方式,您可以使用您提供的许可证跟踪客户的所有详细信息:您提供的是什么?什么时候提供?什么时候到期?价格提供?许可证是否有效?
祝你好运