Open-MBEE需求管理系统模块分析-data模块

OpenMBEE是一个用于支持系统工程师进行并发协作设计的软件平台,它通过集成化的软件应用程序和服务,实现了工程模型和文档的一致性、可追溯性和精确性,从而提高了系统工程的效率和质量。本文将对Open-MBEE中部分模块进行分析,以更加了解其功能与逻辑。

Data模块

-围绕下面数据结构、用户结构、角色,进行各实体类的定义与数据库表的映射

-对各实体类之间的关系(即一对多、多对一、多对多)进行了详细划分

-大多都提供了创建时的初始化方法与修改信息需要的getter和setter方法

-在Scope中使用枚举类型管理commits与node

基本数据结构:

-org(组织) -> project(项目) -> Commits and Branches(分支)

用户结构:

-group(组) -> user(用户)

Role(角色):

权限集合

-实体按顺序分为:分支及对应组和用户、组、Project的元数据键对、组织及对应组和用户、权限、项目及对应组和用户、角色、用户、提交及相应枚举类型,节点及相应枚举类型

1、globle(全局数据)

1)base

-定义了一个Java抽象类Base,它用作其他实体类的基类。这个基类包含的字段和注解,用于数据库中的实体映射和JSON序列化/反序列化。

-提供两个Instant类型的字段,用于存储实体创建与最后修改的时间戳,在实体每次更新时会自动设置这个字段的值。

-提供Getter和Setter方法,获取和设置实体的id字段 created字段 modified字段

-重写equals方法以提供自定义的相等比较逻辑,hashCode方法也被重写以提供与equals方法一致的哈希码逻辑

2)Branch

-一个JPA实体类,映射到数据库中的branches表。

-存储系统中分支信息

-包含分支的ID信息。判断分支是否继承某些属性或权限

-定义一个@ManyToOne关系,表示这个Branch关联到多个Project实体。

-定义两个@OneToMan关系,表示这个Branch关联到多个BranchGroupPerm实体/ BranchUserPerm实体

-提供构造函数,用于创建Branch对象时初始化

-为每个字段提供标准的getter和setter方法,用于访问和修改字段的值。

3)BranchGroupPerm

-一个JPA实体类,映射到数据库中的“branch_group_perms”表。

-存储分支(Branch)与组(Group)之间的权限关系,相关的角色(Role),继承(inherited)信息。

-定义三个@ManyToOne关系,表示这个权限关联到一个Branch实体/Group实体/Role实体。多个权限可关联一个对应实体

-提供构造函数,用于创建BranchGroupPerm对象时初始化

-为每个字段提供了标准的getter和setter方法

4)BranchUserPerm

-一个JPA实体类,映射到数据库中的“branch_user_perms”表。

-存储分支(Branch)与用户(User)之间的权限关系,相关的角色(Role),继承(inherited)信息

-定义三个@ManyToOne关系,表示这个权限关联到一个Branch实体/User实体/Role实体。

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

5)Group

-一个JPA实体类,它映射到数据库中的“groups”表。

-存储系统中的组(Group)信息,用于用户分组

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

6)Metadata

-一个JPA实体类,它映射到数据库中的“metadata”表

-存储与Project实体相关的元数据键值对

-包含元数据的键、元数据的值信息

-定义一个@ManyToOne字段,表示元数据关联到一个Project实体

(元数据在软件开发中通常用于存储关于程序或数据的额外信息,这些信息可能对于程序运行不是必需的,但对于理解、配置或管理程序却是非常有用的)

-为每个字段提供了标准的getter和setter方法

7)Organization

-一个JPA实体类,映射到数据库中的“organizations”表

-存储系统中的组织(Organization)实体。

-包含组织的名称、唯一标识符、组织是否是公开等信息

-定义三个@OneToMany字段,表示这个组织包含的项目集合/组权限集合/用户权限集合

-可忽略某些字段。用于那些不应该暴露给客户端或不需要从客户端接收的字段

-为每个字段提供了标准的getter和setter方法

8)OrgGroupPerm

-一个JPA实体类,它映射到数据库中的“org_group_perms”表

-存储组织(Organization)与组(Group)之间的权限关系

-定义三个@ManyToOne字段,表示这个权限关系关联的组织

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

9)OrgUserPerm

-一个JPA实体类,映射到数据库中的“org_user_perms”表

-存储组织(Organization)与用户(User)之间的权限关系

-定义三个@ManyToOne字段,表示这个权限关系关联的组织、用户、角色

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

10)Privilege

-一个JPA实体类,映射到数据库中的“privileges”表。

-存储系统中的权限(Privilege)

-包含权限的名称并保证唯一性

-定义一个@ManyToMany字段,表示这个权限关联的角色集合

11)Project

-一个JPA实体类,映射到数据库中的“projects”表。

-存储项目的基本信息和关联的其他实体。

-包含项目基础属性、项目基本信息、、名称、唯一ID、相关的文档ID、连接到项目资源(如数据库)的连接字符串、项目所属的组织、项目关联的分支集合、项目关联的元数据集合、项目关联的组权限集合、项目关联的用户权限集合

-关联实体,表示项目所属的组织。

-集合属性,用于存储与项目关联的多个对象,如分支、元数据、组权限和用户权限。

-布尔属性,用于标记项目的特定状态或属性。

-包含项目是否继承某些属性或设置信息

-提供一个标记表示项目是否已被删除。在实际应用中,通常不会直接删除记录,而是标记为已删除状态,以便于数据恢复或审计。

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

12)ProjectGroupPerm

-一个JPA实体类,映射到数据库中的“project_group_perms”表。

-存储项目与组之间权限关系的实体类

-定义了三个@ManyToOne字段,表示与Project、Group和Role实体之间的多对一关系。

-一个Project类型字段,表示这个权限关系所属的项目

-一个Group类型字段,表示这个权限关系所属的组

-一个Role类型字段,表示这个权限关系关联的角色

-一个布尔类型的字段,表示这个权限关系是否是继承的。

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

13)ProjectUserPerm

-一个JPA实体类,映射到数据库中的“project_user_perms”表。

-存储项目与用户之间权限关系的实体类

-定义三个@ManyToOne字段,表示与Project、User和Role实体之间存在多对一关系表

-一个Project类型的字段,表示这个权限关系所属的项目

-一个User类型的字段,表示这个权限关系所属的用户。

-一个Role类型的字段,表示这个权限关系关联的角色。

-一个布尔类型的字段,表示这个权限关系是否是继承的

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

14)Role

-一个JPA实体类Role,映射数据库中的roles表

-存储角色的实体类

-定义Role与Privilege之间存在多对多的关系

-分别表示与这个角色相关联的项目用户权限、项目组权限、组织用户权限、组织组权限、分支用户权限和分支组权限。

-一个Set类型的字段,表示这个角色所拥有的权限集合。

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

15)User

-一个JPA实体类,映射到数据库的users表。

-存储用户的实体类

-包含用户的用户名、邮箱、名和姓、是否为管理员、用户密码、用户是否启用

-定义用户与项目、组织、分支的权限关系

-提供构造函数,用于创建对象时初始化。

-为每个字段提供了标准的getter和setter方法

16)Webhook

-一个与特定项目关联的webhook,其中webhook由其URL标识,映射到数据库中的"webhooks"表

-提供构造器与Getter 和 Setter 方法

2、scopes(范围数据)

范围数据通常与特定的函数、类或模块相关联,并且只在这些作用域内有效。

1)Branch

-一个JPA实体类,它映射到数据库中的branches表

-包含主键字段、分支的描述、分支的ID、文档ID、分支的名称、父分支的引用ID、父分支的提交ID、分支的创建或修改时间戳、分支是否是一个标签、分支是否已被删除等信息

-提供构造器与Getter 和 Setter 方法

2)Commit

-一个JPA实体类,它映射到数据库中的commits表

-包含时间戳、提交ID、分支ID、创建者、注释和提交类型。

-提供Getter 和 Setter 方法

3)CommitType

-用于表示和管理不同类型的commit,并为每种类型分配了一个唯一的整数值,与数据库中的committypes表进行映射

-定义枚举常量、枚举字段存储与每个枚举常量关联的整数值

-枚举构造函数、初始化枚举实例的id字段

-根据整数值获取对应枚举实例、获取枚举实例的id字段的值

4)Node

一个JPA实体类,它映射到数据库中的noods表

-涉及版本的控制,文件信息更改功能

5)Nodetype

-定义了一个名为NodeType的Java枚举类型,它代表了一系列可能的节点类型,与数据库中的nodetypes表进行映射

-定义枚举常量,存储枚举常量关联的整数值

-枚举构造函数

-根据整数值获取对应枚举实例,获取枚举实例的id字段的值

  • 12
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
该资源内项目源码是个人的课程设计、毕业设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。 该资源内项目源码是个人的课程设计,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96分,放心下载使用! ## 项目备注 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),仅供学习参考, 切勿用于商业用途。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值