(共20张PPT)
网络信息系统的用户角色数据组织
以上图片均为本机截图
以上图片均为本机截图
以上图片均为本机截图
访问控制
访问控制是在保障授权用户能获取所需资源的同时拒绝非授权用户的安全机制。
非授权用户没有访问权限,授权用户有访问权限,但是授权用户中存在存取权限的差别,如读取、写入、执行、删除、追加等存取方式
以上图片为本机截图
群创建者/群主
群管理员
用户
用户角色
权限 群主 管理员 群成员
添加/删除群成员 √ √
修改群资料 √ √
删除上传到群共享的文件 √ √
删除相册/相片 √ √
设置/删除群管理员 √ √
解散/转让该QQ群 √
设置加群方式 √
聊天 √ √
上传图片 √ √
……
QQ群成员权限(部分)
在数据库中如何保存
这些用户角色数据?
用户名称 用户角色
Sinor 有限制的管理员
Sinor 栏目1信息发布员
Sinor 栏目1信息审核员
Sinor 栏目1信息管理员
Applesiri 有限制的管理员
Applesiri 栏目2信息发布员
…… ……
此种组织方式的问题是当需要删除、修改某个用户的角色数据时,需要涉及多条记录的维护,若涉及的用户和用户角色较多,则数据处理的时间消耗较大。
用户名称 有限制的管理员 栏目1发布员 栏目1审核员 栏目1管理员 栏目2发布员 栏目2审核员 栏目2管理员 栏目3发布员 ……
Sinor 1 1 1 1 0 0 0 0 ……
Applesiri 1 0 0 0 1 1 1 0 ……
…… …… …… …… …… …… …… …… …… ……
一个用户的处理涉及一条记录中的多个字段,当大批量用户数据需要维护时,处理效率就显得低下,而且数据库的结构也显得过于臃肿。
用户名称 用户角色特征值
Sinor 240
Applesiri 142
某数据表中采用了前面所述的“压缩”方法存储用户角色特征,现在需要将某个十进制角色特征值转换为一一个对应的二进制数。具体要求如下:
1.抽象与建模,将问题已知条件和求解目标用清晰的语言描述,然后建立一个可行的计算模型。
2.设计算法与数据结构,并选择合适的方式描述算法,为后阶段用计算机程序求解提供支撑。
项目描述
一、抽象与建模
为了确定计算模型,还需要进一步明确 条件。不妨假定该系统中一共有20个不同的、相互独立的角色分类,这就确定了最终转换生成的二进制数是20位的。
为了描述精确,不妨设读取的某用户特征值存放于变量x中,同时转换产生的二进制数各数位上的0或者1保存在数组a中。
1.x范围:0 - (220-1)
2.a的元素个数:20
二、设计算法
依托前面建立的计算模型,根据已知数据及数据之间的关系设计数据结构,同时设计解决该问题的算法,并描述你的分析过程。
三、描述算法
1.输入十进制数x
2.初始化a=[0]*20
3.设置数组下标i=0
4.当x>0,将x除以2取余,余数赋值到a[i]中
5.把x整除2的结果赋值给x
6.i自增1
7.当x>0,则执行第4步,否则执行第8步
8.逆序输出a数组
自然语言描述
三、描述算法
流程图
三、描述算法
伪代码
输入十进制数x
a=[0]*20
i=0
while x>0:
a[i]=x%2
x//=2
i=i+1
逆序输出a数组
三、描述算法
计算机程序设计语言(Python)
x=int(input("请输入十进制数:"))
a=[0]*20
i=0
while x>0:
a[i]=x%2
x=x//2
i+=1
print("二进制值为:")
for i in range(19,-1,-1):
print(a[i],end="")
拓展提高
还可以用其他的数据结构来完成该项目么?
怎么做?
课堂小结
进制转换
数据结构不同
算法不同