基于NoSQL非关系数据库数据存储系统的设计与实现

本文涉及的产品
云数据库 MongoDB,独享型 2核8GB
推荐场景:
构建全方位客户视图
简介: 基于NoSQL非关系数据库数据存储系统的设计与实现

项目编号:无

一,环境介绍

语言环境:Java:  jdk1.8

数据库:Mysql: mysql5.7

应用服务器:Tomcat:  tomcat8.5.31

开发工具:IDEA或eclipse

二,项目简介

NoSQL数据库的产生是为了解决大规模数据集合多重数据种类带来的挑战,尤其是大数据应用难题,包括超大规模数据的存储。此次选择基于MongoDB的文档管理系统,此系统旨在设计一个方便、快捷的文档管理系统。本系统在进行开发时,系统的数据库使用的是MongoDB数据库,系统的前端主要使用的是HTML,系统的后端采用了Python语言的Django框架。系统设定只有当用户成功登陆后,才能进入系统进行相应的操作,密码通过哈希函数进行加密,极大程度保证了密码的安全性。所有用户使用此系统可以上传和下载文档,监察稽核员和系统管理员增加审批操作,此外管理员可以执行对用户的增删改。最后经过运行测试本系统可平稳运行,系统界面简洁,操作简单,可优化办公效率,节约人力,符合系统开发的目的与要求,对推动文档管理信息化具有重要意义。

使用计算机对文档进行操作不同于人工,随着公司员工和文档等数据的不断增加,怎么将文档最简单的管理并且和用户联系起来是此次本课题研究的重要内容,将计算机技术深度参与到文档管理系统之中。如何将系统功能模块与用户联系起来并且进行权限分配是系统的重点,以及功能模块实现的逻辑关系与操作流程。本文档管理系统是基于MongoDB数据库进行实现的项目[5]。课题主要内容:

1.分析文档管理系统的特征,确定模块之间的关联;

2.确定非关系数据库存储方法;

3.实现登录、用户的增删改等相关业务的逻辑关系;

4.对系统进行需求分析,明确需要实现哪些功能及实现方式等[6];

5.进行权限分配,系统管理员、监察稽核员、普通用户的权限设置,不同的权限可以执行不同的功能。

1.文档管理:基于非关系数据的文档管理是系统设计的核心工作,身份不同的用户对文档的可操作权限不同。对普通用户,可以上传和下载文档。对监察稽核员和系统管理员,除了普通用户具有的上传和下载文档功能外,还具有审批用户上传的文档的权限。

2.登录功能:系统的登录功能是保障系统安全的必要环节,登录对象有三类,类别不同的对系统的操作权限也不同。三类登录对象分别是:普通用户、系统管理员、监察稽核员。

3.用户管理:根据不同类别的登录用户,分配不同的操作权限。管理员身份的权限包括对用户的进行添加、删除、及修改管理员个人的密码和其它用户的相关信息的操作;监察稽核员身份的权限包括上传、下载文档,查看文档和文件信息的导出;普通用户的权限就只能对用户自己的密码及个人信息进行修改。

4.角色管理:角色管理功能主要是对登录对象类型的管理,可以为对象分配不同的子角色。监察稽核员可以对文档进行审批,根据子角色的不同分为一审和二审。系统管理员对文档进行终审,但不能对自身上传的文件进行终审。文件在一审和二审的过程中,一审员和二审员可以查看该文件的具体内容。

(1)添加用户功能

添加用户功能是文档管理系统的基本功能之一,管理员进入网页管理页面后,点击添加人员,输入工号和姓名,点击保存后即完成新用户的创建;登录页面,要求用户输入自己的用户名和密码,密码初始都为123456,进入系统后可以自行修改。输入之后,系统将验证用户是否在数据库中存在,若存在则比对密码是否和数据库中的相同,如果相同则为验证通过,进入文档管理页面。否则,显示账号或密码错误。为了保证用户的安全性,在用户修改密码的时候,用户密码会经过哈希函数加密保存在数据库中,避免用户安全问题对系统造成危害。

(2)查看信息

普通用户可查看自己上传的文档,以及所有文档信息;管理员和稽核员可以查看所有用户和所有上传文档的全部信息。

(3)用户信息

此操作由管理员实现,管理员在添加用户页面可以创建、删除、修改用户并进行权限分配,同时可以将用户分配到不用的部门。

文档管理系统的用户根据登录对象的权限不同分为三种,分别为普通用户、监察稽核员、系统管理员。

普通用户仅有上传、下载文档和修改个人密码的功能。

监察稽核员除了可以上传、下载文档和修改个人密码外,还可以查看用户上传的文档内容,并且对文档进行一审和二审,以及将所有文档信息当初至exlce中。

系统管理员除了普通用户所具有的功能外,还可以添加、修改用户,而且可以对文档进行终审、并选择将文档退回。具体流程图如图7所示:

图7 系统流程图

三,系统展示

4.1 用户登录

此文档管理系统的登录页面,根据登录对象的身份权限,进入系统后的可执行功能也不同。登录页面需要用户输入用户名和密码,其中超级用户,即管理员是在终端已被创建过的,普通用户则是管理员在站点添加的,二者信息都保存在表里。点击登录按钮后,系统首先在数据库表中查找该用户名是否存在,以及密码是否正确,验证成功后则进入下一页面,管理员登录后进入站点管理页面,普通用户登录后进入文档管理页面。登录页面如图8所示:

图8 登录页面

系统用户在登录模块时,用户填写的元素是以表单的形式传输到后端的,由后端进行处理判断。若用户输入错误,则返回账号或密码输入错误;若正确,则跳转到主页面,进行下一步操作;若账号被设置为离职,将返回账号已锁,请联系管理员。后端登录的主要代码如下:

4.2 用户修改密码  

用户登录系统主页面后,在右上角可以进行修改密码的操作,点击修改密码后,进入修改密码操作,需要输入两次新密码,点击保存,数据库就会将在经过加密后的密码进行保存。修改密码界面如下图9所示:

图9 修改密码界面

用户修改密码,需输入两次新密码,如果不一样,将返回两次密码不一致;如果不输入,则返回密码不能为空。后端修改密码的主要代码如下:

4.3 用户信息管理

管理员可以对所有用户进行统一的管理,如添加新用户、查看所有用户信息、修改用户信息、删除用户、对用户进行权限分配、为用户分配部门等。在实现用户信息管理系统时选择使用了Django框架自带的系统模块,并在此基础上对系统进行重写、功能的扩展等,实现了用户信息管理的功能。在管理员查看用户信息的时候,用户信息管理系统会提供一个所有用户信息的表格,界面简单明了,用户信息清晰可见,同时在页面顶端设计了搜索框,当在用户信息非常多的时候,需要找到某一用户将会变得容易。页面效果如图10所示:

图10 用户管理效果展示界面

后端用户管理的主要代码如下:

4.3.1添加用户

管理员拥有创建新用户的权限,在用户管理页面点击添加人员按钮,用户管理页面将会跳转到添加用户界面,管理员可以输入用户的基本信息,工号、姓名等。用户名即为姓名,密码初始都为123456,用户可以在第一次登录后自行修改。然后可以为用户设置部门,分配角色,最后提交,即可创建成功。(*为必填信息,其他选填。)添加用户和权限分配如图11所示:

图11 添加用户界面

4.3.2修改用户

当管理员想要修改用户的信息时,需要在用户管理界面点击想要修改的用户的姓名,页面就会跳转到该用户的信息界面,管理员可以对工号、姓名、所属部门等信息进行修改,权限也可以重新分配,点击保存后新的用户信息将会在数据库表中进行更新并保存,如果用户的密码忘记可以通过管理员重置密码,密码将重置为123456。效果如图12所示:

     修改用户如果修改了用户名,判断是否该用户名与其他用户冲突,主要代码如下:

图12 修改用户信息界面

4.3.3删除用户

此文档管理系统删除用户的方法为,在系统进行修改用户信息时,角色分配中设置了离职员工,如果员工离职,则修改为离职员工,那么此账号将无法登录,显示账号已锁。页面效果展示如图13所示:

图13 离职员工展示图

4.4 文档管理

4.4.1文档上传

文档管理为文档管理系统最核心的部分,根据用户登录时的不同的身份,用户拥有不同的操作权限。首先对于所有用户,都可以进行文档上传、下载,文档在一审和二审的过程中,一审员和二审员可以查看该文件的具体内容。上传文档页面效果展示如图14所示:

图14 上传文档

4.4.2 文档审批

其中对于监察稽核员,又分为一审员和二审员两种子角色身份,对文件进行审批,根据子角色的不同文档审批分为一审和二审,且审批过程中能查看所有人的文档内容;对于系统管理员,可以对文件进行终审,也可以选择将文档退回但不能对自身上传的文件进行终审。页面效果展示如图15所示:

图15 文档审核

4.4.3文档信息导出

监察稽核员能将所有用户上传文档信息(包括文档编号、文件名、文件路径、上传用户、上传时间)导出至excle中,页面效果如图16所示:

图16文档信息导出至excle

五,项目总结

本文讨论了基于NoSQL非关系数据库数据存储系统的设计与实现,以海量文档的存储、管理为背景,提出了基于MongoDB的文档管理系统。根据登录对象的身份权限,可以进行文档上传、下载、审批等功能。作为非关系数据技术中的MongoDB数据存储系统,具备了NoSQL的高性能、高扩展性的显著特性,而作为最像关系型数据库的非关系数据库,使其具备了传统的SQL关系型数据库系统的一些特征。对于本文的所讨论的基于MongoDB的文档管理系统,具有最佳的适用性。

对新技术的探索和研究总是坎坷的,从零开始学习MongoDB数据库,借阅的书籍,搜索的资料,都见证着我的努力。基于MongoDB的文档管理系统,虽然相比于其他类似的系统,在性能和扩展性上都展现出了一定的优越性,但是依然存现一些不足和局限性。希望在将来可以对课题进一步的研究, 将系统进行完善。

相关文章
|
10天前
|
NoSQL 关系型数据库 MySQL
微服务架构下的数据库选择:MySQL、PostgreSQL 还是 NoSQL?
在微服务架构中,数据库的选择至关重要。不同类型的数据库适用于不同的需求和场景。在本文章中,我们将深入探讨传统的关系型数据库(如 MySQL 和 PostgreSQL)与现代 NoSQL 数据库的优劣势,并分析在微服务架构下的最佳实践。
|
1天前
|
JavaScript Java 关系型数据库
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
本文介绍了一个基于Spring Boot和Vue.js实现的在线考试系统。随着在线教育的发展,在线考试系统的重要性日益凸显。该系统不仅能提高教学效率,减轻教师负担,还为学生提供了灵活便捷的考试方式。技术栈包括Spring Boot、Vue.js、Element-UI等,支持多种角色登录,具备考试管理、题库管理、成绩查询等功能。系统采用前后端分离架构,具备高性能和扩展性,未来可进一步优化并引入AI技术提升智能化水平。
毕设项目&课程设计&毕设项目:基于springboot+vue实现的在线考试系统(含教程&源码&数据库数据)
|
3天前
|
Java 关系型数据库 MySQL
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
本文介绍了一款基于Spring Boot和JSP技术的房屋租赁系统,旨在通过自动化和信息化手段提升房屋管理效率,优化租户体验。系统采用JDK 1.8、Maven 3.6、MySQL 8.0、JSP、Layui和Spring Boot 2.0等技术栈,实现了高效的房源管理和便捷的租户服务。通过该系统,房东可以轻松管理房源,租户可以快速找到合适的住所,双方都能享受数字化带来的便利。未来,系统将持续优化升级,提供更多完善的服务。
毕设项目&课程设计&毕设项目:springboot+jsp实现的房屋租租赁系统(含教程&源码&数据库数据)
|
4天前
|
存储 NoSQL 关系型数据库
NoSQL 数据库的优缺点?
NoSQL 数据库的优缺点?
20 4
|
4天前
|
存储 SQL NoSQL
NoSQL数据库
NoSQL数据库
20 4
|
8天前
|
存储 关系型数据库 分布式数据库
揭秘PolarDB:中国云原生数据库的超级英雄,如何颠覆传统数据存储?
在数字化时代,数据成为企业的核心资产,而云原生数据库则是推动企业转型的关键。PolarDB凭借其先进的存储计算分离架构,在性能、可靠性和易用性方面脱颖而出,成为国内领先的选择。它支持多种数据库引擎,提供多副本存储机制,并采用按量付费模式,有效降低管理和成本压力,助力企业实现高效、可靠的数字化转型。
23 1
|
2天前
|
JSON NoSQL 数据库
和SQLite数据库对应的NoSQL数据库:TinyDB的详细使用(python3经典编程案例)
该文章详细介绍了TinyDB这一轻量级NoSQL数据库的使用方法,包括如何在Python3环境中安装、创建数据库、插入数据、查询、更新以及删除记录等操作,并提供了多个编程案例。
10 0
|
27天前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
32 0
|
27天前
|
存储 SQL NoSQL
探索数据存储的多样性:深入比较Entity Framework Core与NoSQL数据库MongoDB的特性与应用
【8月更文挑战第31天】在现代软件开发中,选择合适的数据存储方案对应用性能至关重要。本文通过对比Entity Framework Core(EF Core)和MongoDB,探讨两者的特点及适用场景。EF Core作为.NET生态中的ORM,简化了SQL数据库的交互;MongoDB则是一种灵活的NoSQL文档数据库,适合处理大量非结构化数据。两者在数据模型、查询方式及性能上各有优势,选择时需根据具体应用需求决定。理解这些差异有助于做出更合理的技术选型。
30 0
|
27天前
|
存储 SQL NoSQL
详解数据库管理系统(DBMS)
【8月更文挑战第31天】
24 0