我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Spring + Struts2 + ExtJs 权限管理的设计(一)数据库的设计

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Spring + Struts2 + ExtJs 权限管理的设计(一)数据库的设计

1、本系统的后台使用mysql数据库,SSH 框架,前端使用ExtJs实现。因为系统需要用到权限管理,所以作此记录,权限管理精确到前端的每一个按钮,甚至每一个action请求。


废话不多说,直接进入主题


(一)、数据库的设计

权限管理部分总共包括4个数据表:

Power(记录权限)、  Role(记录角色)、 PowerRole(中间表)、 PowerUrl(记录每一个action请求或者前端按钮)


(Role表)

package com.txb.model;


import java.util.Set;


import javax.persistence.CascadeType;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.OneToMany;

import javax.persistence.Table;


@Entity

@Table(name="TB_ROLE")

public class Role {

private int roleId;

private String roleName;

private Set<RolePower> rolePowers;

private Set<AdminRole> adminRoles;

@Id

@Column(name = "ROLE_ID", insertable = false, updatable = false, nullable = false, unique = true)

@GeneratedValue(strategy=GenerationType.AUTO)

public int getroleId() {

return roleId;

}


public void setroleId(int roleId) {

this.roleId = roleId;

}


@Column(name = "role_NAME", nullable = false, length = 50)

public String getroleName() {

return roleName;

}


public void setroleName(String roleName) {

this.roleName = roleName;

}


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "role") 

public Set<RolePower> getrolePowers() {

return rolePowers;

}


public void setrolePowers(Set<RolePower> rolePowers) {

this.rolePowers = rolePowers;

}


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "role") 

public Set<AdminRole> getAdminroles() {

return adminRoles;

}


public void setAdminroles(Set<AdminRole> adminRoles) {

this.adminRoles = adminRoles;

}

}


(Power表)

package com.txb.model;


import java.util.Set;


import javax.persistence.CascadeType;

import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.FetchType;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.OneToMany;

import javax.persistence.Table;

@Entity

@Table(name="TB_POWER")

public class Power {

private int powerId;

private String powerName;

private String powerType;

private String menu; //菜单

private Set<RolePower> rolePowers;

private Set<ActionUrl> actionUrls; //用户角色

@Id

@Column(name = "POWER_ID", insertable = false, updatable = false, nullable = false, unique = true)

@GeneratedValue(strategy=GenerationType.AUTO)

public int getPowerId() {

return powerId;

}


public void setPowerId(int powerId) {

this.powerId = powerId;

}


@Column(name="POWER_NAME", nullable = false, length = 50)

public String getPowerName() {

return powerName;

}


public void setPowerName(String powerName) {

this.powerName = powerName;

}


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "power")

public Set<RolePower> getRolePowers() {

return rolePowers;

}


public void setRolePowers(Set<RolePower> rolePowers) {

this.rolePowers = rolePowers;

}


@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER, mappedBy = "power")

public Set<ActionUrl> getActionUrls() {

return actionUrls;

}


public void setActionUrls(Set<ActionUrl> actionUrls) {

this.actionUrls = actionUrls;

}



@Column(name="POWER_TYPE", nullable = false, length = 10)

public String getPowerType() {

return powerType;

}


public void setPowerType(String powerType) {

this.powerType = powerType;

}


@Column(name="POWER_MENU", nullable = true, length = 10)

public String getMenu() {

return menu;

}


public void setMenu(String menu) {

this.menu = menu;

}

}


(Role - Power 中间表,因为他们是多对多的关系)

package com.txb.model;


import java.io.Serializable;


import javax.persistence.*;



@Entity

@Table(name="TB_ROLE_POWER")

public class RolePower implements Serializable {

private int rpid;

private Power power;

private Role role;


public RolePower() {

}


@Id

@Column(name = "RP_ID", insertable = false, updatable = false, nullable = false, unique = true)

@GeneratedValue(strategy=GenerationType.AUTO)

public int getRpid() {

return this.rpid;

}


public void setRpid(int rpid) {

this.rpid = rpid;

}


@ManyToOne

@JoinColumn(name="POWER_ID")

public Power getPower() {

return this.power;

}


public void setPower(Power power) {

this.power = power;

}


@ManyToOne

@JoinColumn(name="ROLE_ID")

public Role getRole() {

return role;

}


public void setRole(Role role) {

this.role = role;

}

}



(PowerUrl 表,这个表是用来记录每一个action请求,判断该用户所拥有的权限是否能执行对应的action请求)

package com.txb.model;


import javax.persistence.Column;

import javax.persistence.Entity;

import javax.persistence.GeneratedValue;

import javax.persistence.GenerationType;

import javax.persistence.Id;

import javax.persistence.JoinColumn;

import javax.persistence.ManyToOne;

import javax.persistence.Table;


@Entity

@Table(name="TB_ACTION_URL")

public class ActionUrl {


private Power power;

private String url;

private String actionName;

private int aId;


@ManyToOne

@JoinColumn(name="POWER_ID")

public Power getPower() {

return power;

}


public void setPower(Power power) {

this.power = power;

}


@Column(name="URL", nullable = false, length = 50)

public String getUrl() {

return url;

}


public void setUrl(String url) {

this.url = url;

}


@Column(name="ACTION_NAME", nullable = false, length = 50)

public String getActionName() {

return actionName;

}



public void setActionName(String actionName) {

this.actionName = actionName;

}


@Id

@Column(name = "A_ID", insertable = false, updatable = false, nullable = false, unique = true)

@GeneratedValue(strategy=GenerationType.AUTO)

public int getaId() {

return aId;

}


public void setaId(int aId) {

this.aId = aId;

}

}


到此权限数据库就已经设计完毕,下一篇给大家介绍后台逻辑部分




免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Spring + Struts2 + ExtJs 权限管理的设计(一)数据库的设计

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

一文带你学习DWS数据库用户权限设计与管理

前言 本文将介绍DWS基于RBAC(Role-Based Access Control,基于角色的访问控制)的数据库用户权限管理。简单地说,一个用户拥有若干角色,每一个角色拥有若干权限。这样,就构造成“用户-角色-权限”的授权模型。在这种模型中,用户与角色之间
一文带你学习DWS数据库用户权限设计与管理
2019-06-21

数据设计之权限的实现

这篇文章主要介绍了数据设计之权限的实现,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下
2022-11-13

使用spring通过整合shiro如何实现数据库设与计权限管理功能

本篇文章为大家展示了使用spring通过整合shiro如何实现数据库设与计权限管理功能,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。首先要先设计好我们的数据库,先来看一张比较粗糙的数据库设计图:具体
2023-05-31

java中的通用权限管理设计(推荐)

实现业务系统中的用户权限管理B/S系统中的权限比C/S中的更显的重要,C/S系统因为具有特殊的客户端,所以访问用户的权限检测可以通过客户端实现或通过客户端+服务器检测实现,而B/S中,浏览器是每一台计算机都已具备的,如果不建立一个完整的权限
2023-05-30

连接云服务器数据库的权限管理设置

1.了解数据库权限管理的重要性在连接云服务器数据库之前,设置适当的权限管理是非常重要的。权限管理可以确保只有授权的用户可以访问和操作数据库,从而保护数据的安全性和完整性。2.创建数据库用户在连接云服务器数据库之前,首先需要创建一个数据库用户。数据库用户是一个具有特定权限的账户,用于连接和操作数据库。可以使用以下SQL命
2023-10-27

亚马逊数据库的服务器在哪里设置权限管理

1.亚马逊数据库权限管理的重要性在使用亚马逊数据库(AmazonRDS)时,设置适当的权限管理是至关重要的。权限管理可以确保只有经过授权的用户可以访问和操作数据库,从而保护数据的安全性和完整性。在亚马逊数据库中,权限管理是通过使用亚马逊身份和访问管理(IAM)服务来实现的。2.使用亚马逊身份和访问管理(IAM)服务亚马逊身份和访问管理(IAM)是一项用于管理亚马逊Web服务(AWS)资源访问权限的服务。通过使...
2023-10-27

解密数据库与数据仓库设计的内幕:揭开数据管理的奥秘

数据库和数据仓库是构建企业有效信息系统的重要基础,它们的设计不仅影响系统的性能、可靠性、可扩展性,还牵涉到数据安全性、系统集成及系统的开发难度等问题,本文通过比较数据库与数据管理仓库的设计特点,揭示其在实际应用中的优缺点。
解密数据库与数据仓库设计的内幕:揭开数据管理的奥秘
2024-02-09

数据的秘密:数据库与数据仓库设计解密,引领数据管理的未来

在信息时代的今天,数据已成为一种重要的资产。如何管理和控制数据,成为企业面临的关键问题之一。数据库和数据仓库是两种最常用的数据管理工具,通过合理的设计,可以帮助企业提高数据管理的效率和效果。
数据的秘密:数据库与数据仓库设计解密,引领数据管理的未来
2024-02-09

穿越数据库与数据仓库设计的迷雾:直达数据管理的制高点

本文将带领读者从数据库与数据仓库设计的迷雾中走出,直达数据管理的制高点,并提供实际演示代码,帮助读者理解和实践数据库与数据仓库的设计。
穿越数据库与数据仓库设计的迷雾:直达数据管理的制高点
2024-02-09

如何设计一个优化的MySQL表结构来实现数据权限功能?

如何设计一个优化的MySQL表结构来实现数据权限功能?概述:在许多应用程序中,数据权限是一项重要的功能需求。数据权限用于限制用户对数据的访问和操作,以确保数据的安全性和合规性。在MySQL中,我们可以通过合适的表结构设计和数据权限控制来实现
如何设计一个优化的MySQL表结构来实现数据权限功能?
2023-10-31

如何设计一个安全的MySQL表结构来实现用户权限管理功能?

如何设计一个安全的MySQL表结构来实现用户权限管理功能?在现代的软件系统中,用户权限管理是非常重要的一个功能。通过合理的设计和管理,我们可以确保用户的数据安全,并且防止未授权的用户访问敏感信息。在本文中,我们将介绍如何设计一个安全的MyS
如何设计一个安全的MySQL表结构来实现用户权限管理功能?
2023-10-31

编程热搜

目录