付费订阅网站最好的桌面设计是什么?

时间:2011-08-09 07:29:50

标签: database-design paypal-subscriptions

我的网站将提供每月付费订阅访问权限,而我正在尝试考虑设置表格的最佳方式。如果用户希望升级到高级服务,则可以选择通过paypal付款。我假设如果用户选择停止服务,他们的帐户将被限制为有限的免费访问版本。

我想我可以在用户详细信息中将其保存在单个表格中,即:

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 个答案:

答案 0 :(得分:2)

您希望将付款交易与用户列表分开,因为您希望能够查看续订历史记录。您可能有用户付费,请求退款,再次付款,会员资格到期,然后续订等等。如果不保留维护此活动历史记录的事务表,您可能会发现自己无法解开客户服务或会计问题。

假设您只有一种付费成员资格(这可能不是一个未来安全的假设),并且假设您使用了适当的程序控制,例如使用存储过程或触发器来同步事务包装器中的数据,您可以进行非规范化会员类型并在您的USERS表中一直有效。这种类型的冗余可能有助于您的操作性能,但如果您允许冗余数据不同步,则可能存在非常大的风险。我建议在没有冗余的情况下尝试它,然后在使用USERS中的非规范化字段之前查看是否存在实际的性能问题。