我目前正在开发一个文件托管站点,就像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