一、功能:
1、添加:
2、查询:
3、更新:
4、删除:
5、批量删除:
上面都是基于模态框进行显示。
二、权限
项目中被保护的功能就是资源,资源可以是URL地址、Java方法、页面元素。
根据资源保护方式的不同,可以把权限控制分成两部分:
粗粒度权限控制:使用Filter或Interceptor,控制没一个请求是否有权限访问一个资源。
细粒度权限控制:把用户不能操作的功能隐藏起来,让用户看不到不能访问的资源。
将完成一个功能所需要使用到的各个资源封装到一起,作为整体分配给用户,用户才能够完整使用这个功能。
三、角色:用户的分组,方便系统管理员操作。
复杂的功能需求:细分
角色1:
子角色1:
分组1
分组2
四、用户
登录后台管理系统的用户:Admin
登录前台会员系统的用户:Member
用户可以看做使用系统的人在操作系统中具体功能的时候的具体身份,系统根据该身份记录日志、控制权限。
五、权限到资源关联的关系
1、权限—>资源:
数据库表:多对多关系
一个权限包含多个资源,一个资源可能分配给多个不同权限。
Java类:单向。
关心一个权限中包含哪些资源,不关心一个资源被分配给哪些权限,Java类方面权限对象能够获取到包含的资源即可。
2、角色—>权限:
数据库表:多对多关系
一个角色使用系统会用到很多具体功能,这些功能必须都有权限才可以。
一个权限可能被分配给多个不同角色。
Java类:
关心一个角色包含哪些权限,需要通过角色对象获取对应的权限。
不关心权限被分配给了哪些角色。
3、用户—>角色:
数据库表:多对多关系
一个角色是用户分类,同一个分类下包含很多具体用户。
一个用户有可能身兼数职,同时具备多个角色。
Java类:双向
关心角色中包含哪些用户,有可能在管理用户数据时列出某个角色下所有用户。
关心用户包含哪些角色,从而决定这个用户是否可以访问某个资源。
六、数据库中表示多对多关系:需要用到中间表。
1、不使用中间表:
2、使用中间表:
3、中间表设置主键方式
方式一:另外设置专门字段
方式二:使用联合主键,两个字段或多个字段联合起来,共同构成主键。构成联合主键的具体字段可以有重复值。
但是联合主键合并的值不能重复。