我正在设计一个Web应用程序,我需要让管理员和版主有权允许和拒绝其他用户访问该应用程序。我想要一个包含以下列的表:
我可以只有一个表,存储所有被禁止的用户,但我想跟踪应用程序中实际发生的情况,并确保管理员和版主也没有行为不端。
因此,如果我的表中没有包含OperationType列,则可以检索所有被禁用户的列表,就像编写以下查询一样简单:
select BannedUser from UserBan;
但是,如果我将表格与OperationType列一起离开,如上所示,我的简单选择查询可能会变成这样:
select o3.BannedUser
from
(
select o1.BannedUser, max(o1.EventDate) EventDate
from UserBan o1
group by o1.BannedUser
) o2, UserBan o3
where o3.EventDate = o2.EventDate and
o3.BannedUser = o2.BannedUser and
o3.OperationType = 1
假设OperationType = 1是禁止的。
那么,有人可以为我的案例提供更好的解决方案吗? :)