付费订阅网站的最佳表格设计是啥?
Posted
技术标签:
【中文标题】付费订阅网站的最佳表格设计是啥?【英文标题】:What would be the best table design for paid subscription site?付费订阅网站的最佳表格设计是什么? 【发布时间】:2011-10-22 23:54:22 【问题描述】:我的网站将提供按月付费的订阅访问,我正在尝试考虑设置表格的最佳方式。如果用户希望升级到高级服务,他们可以选择通过贝宝付款。我假设如果用户选择停止使用服务,他们的帐户将被限制为有限的免费访问版本。
我在想,我可以将其作为用户详细信息保存在一个表中,即:
USERS
ID| NAME| MEMBERSHIP_TYPE| LAST_PAYMENT_DATE| ACTIVE_TILL| TRANSACTION_ID
我是否需要将它分成两个不同的表
USERS
ID| NAME
MEMBERSHIPS
USER_ID|MEMBERSHIP_TYPE|LAST_PAYMENT_DATE|ACTIVE_TILL|TRANSACTION_ID
并将付款历史存储在第三个表中。我会在这里使用定期计费。
【问题讨论】:
将其放入单独的表中将使其更具可扩展性以供将来使用,例如,如果用户想注册多个会员等级。 【参考方案1】:您希望将付款交易与用户列表分开,因为您希望能够查看续订历史记录。您可能有用户付款、申请退款、再次付款、会员资格到期、然后续订 - 等等。如果不保留维护此活动历史记录的事务表,您可能会发现自己无法解决客户服务或会计问题。
假设您只有一种付费会员(这可能不是未来安全的假设)并假设您实施了适当的程序控制,例如使用存储的过程或触发器在事务包装器中同步数据,您可以非规范化USERS 表中的成员资格类型和有效截止日期。这种类型的冗余可能有助于您的操作性能,但如果您允许冗余数据不同步,它也可能非常危险。我建议在没有冗余的情况下尝试它,然后在使用 USERS 中的非规范化字段之前查看您是否有实际的性能问题。
【讨论】:
以上是关于付费订阅网站的最佳表格设计是啥?的主要内容,如果未能解决你的问题,请参考以下文章