我一直在阅读(
mysql)触发过去几天……特别是我想要做的是找出一种更新用户信息的好方法.
用于此的案例与用户管理系统有关:
例如,管理员用户将常规用户更新为管理员,此用户类型更改将启用接口上的软件功能.
问题:
您不会知道此用户类型更改,除非您查询数据库并重置例如$_SESSION [‘user’] [‘type’]变量,或者用户登录|退出系统.
我不认为MysqL
triggers would be ideal for this.为什么?因为你最有可能最终得到部分逻辑在PHP和部分在MysqL.使用一种技术是一件好事,因为以后为您和您的同事维护/调试代码会更容易.
因此,在您的情况下,如果您希望更改用户角色将立即执行操作,则必须在每个脚本运行时加载用户角色或使用数据库中的某个标志注销用户,这将标志着他的会话不再有效(或者你可以实现自己的session_set_save_handler
,它会在文件中的某个地方保存会话,你可以删除它以注销用户).
这取决于您的需求哪种解决方案更适合您的情况.
>如果您的角色逻辑很复杂,并且它包含分配给一个用户的多个角色以及每个用户的额外权限分配/排除,则最好在用户登录时执行此检查,然后使用会话记住结果.
>如果检查每个脚本运行的权限不是问题,则可以执行此操作.但请注意,出于安全原因,强制用户再次登录可能是一种好习惯.
>如果用户注销可能导致丢失工作,您应该让用户自己注销并在下次登录后应用新权限(您可以向用户显示新权限正在等待登录的消息生效).