本文将结合权限控制进行对ER关系的详细讲解,希望能给JavaWeb开发的新手朋友们带来一点帮助,本文中叙述可能存在不足之处,还请大家指出!(写博不易,尊重版权)
关于权限控制,无外乎用户User、角色Role、菜单Menu三张表,所以先建表如下:
以上为常用两种建表模式,是针对于用户和角色的ER关系不同进行分类的,下面进行详细解读:
首先角色和权限是多对多关系,这毫无疑问,一个角色可以使用多个菜单,一个菜单可以被多个角色使用
图一:用户和角色是多对多关系,这是最符合实际情况也是最常用的,因为一个用户可以担任多个角色(用户A可以同时担任项目经理和架构师两种角色),一个角色也可以对应多个用户(项目经理有A、B、C三人)
图二:用户和角色是多对一关系,这是结合实际问题中对权限控制进行的简化处理,即认为一个用户只能担任一个角色或者只考虑用户的主要角色,次要角色不予考虑,如A是管理员(一对一),B、C都是普通用户(多对一)
开始编写javabean和解析SSM和SSH中的ER关系映射文件(以简化形式图二为例):
User表实体类:(仅仅写主要部分)
public class Admin {
private Integer id;
private String account;
private String password;
private String name;
private Integer state;
// 多对一:外键r_id
private Role role;
}
Role表实体类:
public class Role {
private Integer id;
private String name;
private Integer state;
//