我目前正在開發一個文件託管站點,就像filehippo.com。我完成了它。但是,我的客戶想要一個類似於rapidshare pro的高級會員系統。因此,只有高級會員才能在一段時間內(例如一個月左右)獲得下載權限。Codeigniter高級會員系統
我現在有兩個表:
- 用戶
- 文件
我應該爲成員地位的新表? 這樣做的最佳做法是什麼?邏輯和可能的數據庫結構。請給我一些建議。
非常感謝。
我目前正在開發一個文件託管站點,就像filehippo.com。我完成了它。但是,我的客戶想要一個類似於rapidshare pro的高級會員系統。因此,只有高級會員才能在一段時間內(例如一個月左右)獲得下載權限。Codeigniter高級會員系統
我現在有兩個表:
我應該爲成員地位的新表? 這樣做的最佳做法是什麼?邏輯和可能的數據庫結構。請給我一些建議。
非常感謝。
如果他們支付的保費成員,我會創造另一個表,並將其關聯到支付的交易編碼。這將是許多premium_access行的一個用戶行。通過這種方式,您可以記錄支付多少天/月服務費用的歷史記錄,並允許爲6個月或每年的會員收取折扣,並且仍然有準確的跟蹤,以確保您可以查找任何漏洞或漏洞利用。
然後,當你想知道他們什麼時候到期這純粹是
SELECT * FROM premium_access其中USER_ID = '$ ID' 限制1只爲了在END_DATE遞減
編輯:這裏是快速模擬一個可能的表格結構。使用你需要的列和正確的命名約定自己的判斷:
CREATE TABLE IF NOT EXISTS premium_access (
id INT NOT NULL AUTO_INCREMENT ,
user_id INT NOT NULL , --fk to USERS
payment_id VARCHAR(45) NULL , --fk to PAYMENTS/INVOICES
start_date TIMESTAMP NOT NULL ,
end_date TIMESTAMP NOT NULL ,
PRIMARY KEY (id))
哦,謝謝Desper! – rzkrzzz 2013-02-13 18:58:35
看起來你只是在用戶表和文件中開發或添加一些列。
在用戶表中添加列user_id,level_access,非活動期。那麼文件表中可以添加用於連接用戶表的列id_user。
可以設置你做出這樣的函數的截止日期間隔:
function expiration($date) {
/* $date = time is a register as user */
$sql=mysql_query("select ('$date' - INTERVAL 1 week) as expired");
$row = mysql_fetch_array($sql);
$output=$row['expired'];
return $output;
}`
你可以讓它在用戶欄,也許一個整數,表示訪問級別 – 2013-02-12 20:54:36
是的,這就是我現在做的事情。但它如何檢查到期日期? – rzkrzzz 2013-02-12 20:59:32
哦好點,是的,可能要另一張表 – 2013-02-12 21:00:43