2011-08-09 83 views
1

我的網站將提供付費的每月訂閱訪問權限,並且我正在考慮設置我的表格的最佳方式。如果用戶希望升級到高級服務,用戶可以選擇通過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 

和存儲第三張表中的付款歷史。我會在這裏使用循環計費。

+0

將其放入單獨的表格中將使其更具可擴展性,以便將來使用,例如用戶是否想要註冊多個成員級別。 – evasilchenko

回答

2

您想從您的用戶列表中分離付款交易,因爲您希望能夠查看續訂歷史記錄。您可能會要求用戶付費,申請退款,再次付款,成員資格到期,然後續訂 - 等等。如果不保留一個維護此活動歷史記錄的交易表,您可能發現自己無法解決客戶服務或會計問題。

假設您只有一種付費會員(這可能不是一個未來安全的假設),並假設您使用適當的過程控制,例如使用存儲過程或觸發器來同步事務性包裝中的數據,您可以反正規化會員資格類型並在您的USERS表中保持活動狀態。這種冗餘可能有助於您的操作性能,但如果您允許冗餘數據不同步,則這種冗餘也可能非常危險。我建議在沒有冗餘的情況下嘗試它,然後在使用USERS中的非規範化字段之前查看是否有實際的性能問題。

相關問題