2013-02-12 85 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; 
}`