问个权限设计的问题
假设有用户A B C D 对 页面Example 都有访问权限
但是一. A B C D 4个用户能够访问的时间不一样,比如A是每天上午 B是本月1-15号 ,C是注册后的一个星期内,D只能访问50次等等.
二. A B C 3个用户访问页面Example后,每个用户的扣分可能不一样,比如A不扣分,A扣1分,C扣2分等等(1和2的情况可能交叉,例如:同样是"每天上午"可以访问的用户,一个扣一分,一个扣2分)
三.每个用户都可能被临时赋予访问权限
请问这样的权限系统怎么设计?
我开始的想法是根据每种情况设置一个role来控制, 但是这样是不是太复杂了?以下是我的表设计
表一
用户role
用户id | roleid | 开始时间 | 结束时间 | 使用数额
表二
基本role
roleid | role描叙
另外在页面Example 有多个role可以访问后,我怎么判断那些用户可以访问?如果用switch case 写死的话,新增加了一个role后程序要重新编译
怎样写才可以在增加role后,不要改写程序.