矩阵结构的数据库设计:
组织结构表(单位ID,部门ID,上级部门ID,...)
用户表(单位ID,部门ID,用户ID,用户名称,口令...)
组织结构关系表(部门ID,用户ID)
上述表中如何体现矩阵型的组织结构?在用户表中有一个部门ID,关联组织结构表的部门ID,这样部门和用户是一对多的,即一个行政部门有多个用户,一个用户只能属于一个行政部门;
利用组织结构表和组织结构关系表可建立多对多的组织结构-人员关系,这样用户除了属于一个行政部门外,如果要体现兼职,或者属于多个群组,可利用此表存储多对多关系.这样即有组织结构表反映垂直的组织结构关系,又可利用组织结构-人员多对多关系建立任意的关联.
在使用了Spring Security的权限框架的系统中,一个完整的用户权限集合是:
用户-权限+用户-角色-权限+用户按行政部门的组织结构权限+用户按群组(即多对多的组织结构)划分获得的权限,在openjweb中实现了所有上述权限,其数据库的视图参考如下:
create or replace view v_user_auth as
select a.user_id,a.login_id,b.comm_code,b.auth_name,b.auth_resource from
comm_user a,comm_auth b ,comm_user_auth c
where c.user_id = a.user_id
and c.auth_id = b.auth_id
union
select a.user_id,a.login_id,b.comm_code,b.auth_name,b.auth_resource from
comm_user a,comm_auth b , comm_user_role d,comm_role_auth e
where a.user_id = d.user_id
and d.role_id = e.role_id
and e.auth_id = b.auth_id
union
select distinct a.user_id,a.login_id,b.comm_code,b.auth_name,b.auth_resource from
comm_user a,comm_auth b , comm_org_emp_rel d,comm_dept_auth e
where a.user_id = d.user_id
and d.org_id = e.dept_id
and e.auth_id = b.auth_id
union
select distinct a.user_id,a.login_id,b.comm_code,b.auth_name,b.auth_resource from
comm_user a,comm_auth b ,comm_dept d ,comm_dept_auth e
where a.dept_id = d.pk_id
and d.row_id = e.dept_id
and e.auth_id = b.auth_id;
说明:comm_auth为权限基本信息表;
comm_user_auth为用户权限关系表
comm_user_role为用户角色关系表
comm_role_auth为角色权限关系表
comm_roles为角色表
comm_org_emp_rel为组织结构人员关系表(即多对多关系表)
comm_dept_auth为组织结构权限表
comm_dept为组织结构基本信息表
目前openjweb已经实现了用户,角色,权限,组织结构基本信息录入及用户-权限,用户-角色关联,角色授权,组织结构-人员多对多维护,组织结构授权等功能,形成了一个完整的权限管理解决方案.
分享到:
相关推荐
### OpenJWeb 1.6 Java快速开发平台关键知识点 #### 第一章 OpenJWeb(v1.6)介绍 **1.1 开源技术集成** - **基础框架**:OpenJWeb 1.6 基于 Spring、Struts2、Hibernate3、Spring Security 和 DWR 这些成熟的技术...
在Java编程环境中,矩阵的基本运算是一项重要的任务,尤其在处理线性代数问题时。以下是对标题和描述中提到的各个知识点的详细说明: 1. **矩阵的相加**:矩阵相加是将对应位置的元素相加。如果两个矩阵具有相同的...
Java实现的求逆矩阵算法示例 本文主要介绍了Java实现的求逆矩阵算法,涉及java基于数组的矩阵遍历与运算相关操作技巧。下面将详细介绍该算法的实现细节。 矩阵逆矩阵算法 矩阵逆矩阵算法是线性代数中的一种重要...
本文将深入探讨如何使用Java实现图的邻接矩阵以及如何在该数据结构上执行广度优先搜索(BFS)。 **邻接矩阵** 邻接矩阵是一种二维数组,它用来表示图中顶点之间的连接。如果图是无向的,邻接矩阵是对称的;如果图...
Java作为一种广泛使用的编程语言,被用于实现各种数据结构,包括矩阵。矩阵是一种特殊的二维数组,广泛应用于图形处理、物理学、工程计算、机器学习等多个领域。 在Java中实现矩阵,首先我们需要理解矩阵的基本概念...
使用java实现求矩阵的逆矩阵,使用者可根据吱声需要采纳
3. 快速反应机制:矩阵式组织结构可以快速反应市场的变化,快速实现企业的战略目标。 三、矩阵式组织结构在中国的实践 矩阵式组织结构在中国的实践是伴随着跨国公司的进入而开始的。许多大型跨国公司,如微软、IBM...
(2)考虑n不是2的幂次方,n为偶数的情形,设计一个传统方法与的Strassen算法相结合的矩阵相乘算法,取n=12实现分治递归(可以有多种方案实现); 矩阵A,B元素自动生成,限定矩阵元素在0-10之间。
Java复数矩阵库JamPack是一个专门用于处理复数矩阵计算的高效工具,它为Java开发者提供了方便、快捷的复数矩阵运算功能。在数学和工程领域,复数矩阵的运算广泛应用,例如在信号处理、图像分析、物理模拟等多个场景...
在高版本的Java中,可以使用JavaFX或Swing的图形组件来实现颜色的定制,但在JDK1.6中,我们通常依赖于AWT(Abstract Window Toolkit)进行图形操作。ZxingUtil通过AWT提供的Graphics2D类来实现对二维码颜色的控制。 ...
本文将深入探讨如何使用Java语言实现矩阵转换算法,并为Java初学者提供一个学习实例。矩阵是由有序数组构成的矩形,通常用大括号{}表示,其元素是数字或变量。矩阵的操作主要包括加法、乘法、转置和逆矩阵等。 1. *...
Spring Security OAuth2 Boot 2.6.8作为Spring Security OAuth2支持的最后一个版本,为开发者提供了在Spring Boot项目中实现OAuth2认证授权功能的便捷途径。通过合理的依赖管理和配置,可以快速构建出安全可靠的授权...
### 矩阵转置Java程序详解 #### 一、程序概述 本Java程序实现了一个基本功能:将一个4x4的矩阵进行转置。转置是指将矩阵的行和列进行交换,使得原矩阵中的第i行第j列元素变成转置后矩阵中的第j行第i列元素。该程序...
在编程中,尤其是在Java这种面向对象的语言中,我们可以创建类来表示矩阵,并实现矩阵的基本运算,如加法和乘法。以下是对Java语言实现矩阵基本运算的详细解析。 1. **矩阵类的设计**: - 首先,我们需要定义一个`...
总的来说,《数据结构(Java版本)》是一本适合程序员入门的教材,通过学习,你可以系统地掌握数据结构和算法,并用Java语言进行实现,为今后的软件开发打下坚实的基础。无论你是准备面试,还是想要提升编程技能,这...
Java版本的矩阵类是编程中处理数学计算,特别是在科学计算和数据分析领域不可或缺的一部分。这个特定的矩阵类提供了对复数矩阵的支持,以及一系列高级的线性代数操作,如QR分解、奇异值分解(SVD)和求解特征值与...
在这个"java数据结构课程设计稀疏矩阵"项目中,我们将深入探讨稀疏矩阵的概念,以及如何使用Java来实现这一数据结构。稀疏矩阵是处理大量非零元素比例较小的矩阵时的有效工具,因为它可以节省存储空间。 首先,让...
为了实现这些功能,开发者可能会使用Java的二维数组或者更高级的数据结构,如ArrayList的嵌套使用,来存储矩阵元素。在操作过程中,注意处理边界条件和异常,以确保程序的健壮性。 总的来说,理解和掌握上三角、下...
了解这些基本概念后,你可以打开提供的Java源代码,分析其结构和算法,以便深入理解矩阵运算在Java中的实现,并可以尝试将其应用到自己的项目中,或者用C#重写这些功能。无论你是初学者还是有经验的开发者,这都将是...
使用java实现求矩阵的伴随矩阵,使用者可以根据自身需要进行采用