我目前正在开发一个文件托管网站,就像filehippo.com一样。我完成了它。但是,我的客户想要一个类似于专业版的高级会员制度。因此,只有高级会员才能在一段时间内(例如一个月左右)获得下载访问权限。
我现在有两张桌子:
我应该为会员身份创建一个新表吗? 这样做的最佳做法是什么?逻辑,也许是数据库结构。请给我一些建议。
非常感谢。
答案 0 :(得分:0)
看起来您只是在用户表和文件中开发或添加一些列。
在user表中添加列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;
}`
答案 1 :(得分:0)
如果他们为高级会员付费,我会创建另一个表并将其与付款的交易ID相关联。这将是许多premium_access行的一个用户行。通过这种方式,您可以获得历史记录,了解使用了多少天/月服务的付款,并允许为6个月或每年的成员收取折扣,并且仍然可以准确跟踪以确保您可以追踪任何漏洞或漏洞。< / p>
然后当你想知道他们什么时候到期时,它就是
从premium_access中选择*,其中user_id ='$ id'限制1个订单by end_date desc
编辑:这是一个可能的表结构的快速模拟。根据您需要的列和正确的命名约定使用您自己的判断:
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) )