2013-02-12 122 views
-2

我目前正在開發一個文件託管站點,就像filehippo.com。我完成了它。但是,我的客戶想要一個類似於rapidshare pro的高級會員系統。因此,只有高級會員才能在一段時間內(例如一個月左右)獲得下載權限。Codeigniter高級會員系統

我現在有兩個表:

  • 用戶
  • 文件

我應該爲成員地位的新表? 這樣做的最佳做法是什麼?邏輯和可能的數據庫結構。請給我一些建議。

非常感謝。

+0

你可以讓它在用戶欄,也許一個整數,表示訪問級別 – 2013-02-12 20:54:36

+0

是的,這就是我現在做的事情。但它如何檢查到期日期? – rzkrzzz 2013-02-12 20:59:32

+0

哦好點,是的,可能要另一張表 – 2013-02-12 21:00:43

回答

0

如果他們支付的保費成員,我會創造另一個表,並將其關聯到支付的交易編碼。這將是許多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)) 
+0

哦,謝謝Desper! – rzkrzzz 2013-02-13 18:58:35

0

看起來你只是在用戶表和文件中開發或添加一些列。

在用戶表中添加列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; 
}`