Advertisement

《数据库应用系统实践》2.0版本 — 5- 会员管理系统

阅读量:

系列文章

《数据库应用系统实践》2.0版本 — 5- 会员管理系统

👇🏻实践要求👇🏻
在这里插入图片描述
在这里插入图片描述

一个使用Java语言和SQLServer数据库设计的会员管理系统
1.对课题进行需求调研与分析,完成了系统功能图与功能模块设计;完成阶段开发。
2.给出课题的概念模型(即ER图),要求对课题ER图设计中至少5个实体;
3.根据设计的ER模型,结合DBMS(数据库管理系统)特点给出了系统的逻辑模型(关系模式);
4.给出实现数据库的SQL语句,包含创建数据库、数据表(含主键、外键定义及约束性条件设计)、插入数据(各表至少插入5条记录)、更新数据、删除数据、视图(单表或多表)等;根据需要设计了存储过程和触发器;完成阶段开发。
5.完成应用程序开发过程中的编码、调试、测试、Bug修复等工作;开发语言选用Java;开发工具可选用IDEA、Eclipse均可;程序中实现数据库连接、GUI开发、增删改查操作等内容。

包括有 Java源代码+数据库源码+实践报告+部署教程
在这里插入图片描述


文章目录

  • 系列文章

  • 一、需求分析

    • 1、系统背景
    • 2、 系统功能结构
  • 二、概念模型设计

    • 1.基本要素(符号介绍说明)
    • 2.ER图
  • 三、逻辑模型设计

    • 1.ER模型向关系模型转换规则
    • 2.转换后的关系模型
    • 3.关系模型优化(达到3NF)
  • 四、物理设计

    • 1.创建数据库的SQL语句或截图
    • 2.创建所有表的SQL语句或截图(包含完整性约束)
  • 五、数据库实施

    • 1.粘贴所创建的数据库关系图
    • 2.数据录入
    • 3.数据处理(包含完整十个,篇幅限制,仅列举前5个)
  • 六、数据库应用系统实现

    • 1.相关界面截图
    • 2.和数据库连接的程序语句
    • 3.具体实现代码
  • 七、小组分工明细

  • 八、开发环境说明

  • 九、总结

  • 十、参考文献

  • 十一、获取源码


一、需求分析

1、系统背景

基于数据库设计的会员管理系统旨在有效管理普通用户、管理员、会员等级、会员信息和会员积分等关键数据。系统通过提供安全的登录和权限控制功能,确保只有授权用户可以访问和修改相关信息。会员等级模块允许管理员定义不同等级的折扣率,从而激励会员提升其消费活动。会员信息模块记录会员的基本信息和注册时间,帮助系统跟踪和分析会员的活跃度和增长趋势。积分管理模块记录会员的积分获取和使用情况,为会员提供积分换取优惠或礼品的机会,促进消费者参与和忠诚度增强。该系统的全面设计和功能集成旨在提升会员管理的效率和用户体验,支持企业提升市场竞争力和客户满意度。

2、 系统功能结构

(1)功能结构图
在这里插入图片描述

(2)模块说明
包含会员等级、会员信息、会员积分、普通用户信息、管理员信息。

二、概念模型设计

1.基本要素(符号介绍说明)

① 矩形:表示实体。
② 椭圆形:表示属性,即实体的属性。
③ 菱形:表示联系。
④ 连线:该连线为没有方向的线段,分为连接实体与属性(矩形与椭圆形之间的连线)和连接实体与联系名(矩形与菱形之间的连线);实体与联系名的连线旁需标注联系的类型,如1:1、1:n、m:n。
注意:在联系类型标注时请按照约定俗成的方式标注,一对多使用1:n,多对多使用m:n,如果超过两个实体请采用m:n:p:q:

2.ER图

在这里插入图片描述

三、逻辑模型设计

1.ER模型向关系模型转换规则

(1)实体转换为单独的关系模式。
(2)一对一联系转换为关系模式有两种方法。
①、将联系转换为单独的关系模式;
②、将其中一个实体的之间加入到另外一个实体的关系模式中,作为外键。
(3) 一对多联系转换为关系模式有两种方法。
①、将联系转换为单独的关系模式;
②、将n实体的主键合并到1实体的关系模式中,作为1实体关系模式的外键。

2.转换后的关系模型

普通用户 (用户ID, 用户名, 密码)
管理员 (管理员ID, 管理员名, 密码)
会员等级 (等级ID, 等级名称, 折扣率)
会员信息 (会员ID, 姓名, 手机号, 注册时间)
会员积分 (积分ID, 会员ID, 积分数, 更新时间)

3.关系模型优化(达到3NF)

以上要素都属于第三范式

四、物理设计

1.创建数据库的SQL语句或截图

复制代码
    CREATE DATABASE 会员管理系统
    
    
    c
    
    

2.创建所有表的SQL语句或截图(包含完整性约束)

复制代码
    -- 创建普通用户表
    CREATE TABLE 普通用户 (
    用户ID INT PRIMARY KEY,
    用户名 NVARCHAR(50) NOT NULL,
    密码 NVARCHAR(50) NOT NULL
    );
    
    -- 创建管理员表
    CREATE TABLE 管理员 (
    管理员ID INT PRIMARY KEY,
    管理员名 NVARCHAR(50) NOT NULL,
    密码 NVARCHAR(50) NOT NULL
    );
    
    -- 创建会员等级表
    CREATE TABLE 会员等级 (
    等级ID INT PRIMARY KEY,
    等级名称 NVARCHAR(50) NOT NULL,
    折扣率 DECIMAL(4, 2) NOT NULL
    );
    
    -- 创建会员信息表
    CREATE TABLE 会员信息 (
    会员ID INT PRIMARY KEY,
    姓名 NVARCHAR(50) NOT NULL,
    手机号 NVARCHAR(20) NOT NULL,
    注册时间 DATE NOT NULL
    );
    
    -- 创建会员积分表
    CREATE TABLE 会员积分 (
    积分ID INT PRIMARY KEY,
    会员ID INT NOT NULL,
    积分数 INT NOT NULL,
    更新时间 DATETIME NOT NULL
    );
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/6VQc9lGqOFM5eSvdmxgkLBXEfzW4.png)

五、数据库实施

1.粘贴所创建的数据库关系图

在这里插入图片描述

2.数据录入

复制代码
    -- 插入普通用户表数据
    INSERT INTO 普通用户 (用户ID, 用户名, 密码)
    VALUES
    (1, N'张三', N'123456'),
    (2, N'李四', N'abcdef'),
    (3, N'王五', N'qwerty'),
    (4, N'赵六', N'password'),
    (5, N'小明', N'pass123');
    
    -- 插入管理员表数据
    INSERT INTO 管理员 (管理员ID, 管理员名, 密码)
    VALUES
    (1, N'管理员1', N'admin123'),
    (2, N'管理员2', N'admin456'),
    (3, N'超级管理员', N'superadmin'),
    (4, N'系统管理员', N'sysadmin'),
    (5, N'管理员3', N'admin789');
    
    -- 插入会员等级表数据
    INSERT INTO 会员等级 (等级ID, 等级名称, 折扣率)
    VALUES
    (1, N'普通会员', 0.95),
    (2, N'白银会员', 0.90),
    (3, N'黄金会员', 0.85),
    (4, N'钻石会员', 0.80),
    (5, N'至尊会员', 0.75);
    
    -- 插入会员信息表数据
    INSERT INTO 会员信息 (会员ID, 姓名, 手机号, 注册时间)
    VALUES
    (1, N'小红', N'13812345678', '2024-07-03'),
    (2, N'小明', N'13987654321', '2024-06-25'),
    (3, N'小华', N'13711112222', '2024-07-01'),
    (4, N'小王', N'13633334444', '2024-06-30'),
    (5, N'小李', N'13555556666', '2024-07-02');
    
    -- 插入会员积分表数据
    INSERT INTO 会员积分 (积分ID, 会员ID, 积分数, 更新时间)
    VALUES
    (1, 1, 500, '2024-07-03 10:00:00'),
    (2, 2, 1000, '2024-07-03 11:30:00'),
    (3, 3, 750, '2024-07-03 09:45:00'),
    (4, 4, 1200, '2024-07-03 08:15:00'),
    (5, 5, 300, '2024-07-03 13:00:00');
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/rAYEiK7sOMSR9tUgzB3IxyCulaQL.png)

3.数据处理(包含完整十个,篇幅限制,仅列举前5个)

(1)至少包括2张表的等值连接语句;
在这里插入图片描述

(2)创建视图的语句;
在这里插入图片描述

(3)更新数据语句;
在这里插入图片描述

(4)删除数据语句;
在这里插入图片描述

(5)包含聚集函数的查询语句;
在这里插入图片描述

(6)包含条件过滤的查询语句;

(7)修改表结构语句;

(8)用T-SQL语句写出一个对数据表处理的人机交互程序;

(9)编写一个触发器;

(10)编写一个存储过程;

六、数据库应用系统实现

1.相关界面截图

用户登录:
在这里插入图片描述

信息查询:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

管理员登录:
在这里插入图片描述

信息查询:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据增加:
在这里插入图片描述
在这里插入图片描述

数据修改:
在这里插入图片描述
在这里插入图片描述

数据删除:
在这里插入图片描述
在这里插入图片描述

2.和数据库连接的程序语句

复制代码
    	String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    				String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=会员管理系统";
    				String userName = "sa";
    				String userPwd = "1";
    
    
    c
    
    

3.具体实现代码

复制代码
    if (jr3.isSelected())// 
    			{
    				String driverName = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
    				String dbURL = "jdbc:sqlserver://localhost:1433;DatabaseName=会员管理系统";
    				String userName = "sa";
    				String userPwd = "1";
    				userId = null; // 管理员
    				try {
    					Class.forName(driverName);
    				} catch (Exception e1) {
    					e1.printStackTrace();
    				}
    				try {
    					Connection con = DriverManager.getConnection(dbURL, userName, userPwd);
    					Statement s = con.createStatement();
    					String r1 = "select * from 管理员  where 管理员ID=? and 密码=?";
    					PreparedStatement P = con.prepareStatement(r1);
    					P.setString(1, jtf1.getText());
    					P.setString(2, jtf2.getText());
    					ResultSet rs = P.executeQuery();
    					if (rs.next()) {
    						userId = rs.getString("管理员ID").trim();
    						new Custom(userId);
    						jfrm.setVisible(false);
    					}
    
    					else {
    						JOptionPane.showMessageDialog(null, "管理员ID或密码不正确!");
    					}
    					s.close();
    					con.close();
    				} catch (Exception e1) {
    					e1.printStackTrace();	
    
    
    c
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-17/xN1zqHDa9PbErlmkSpOjVfoL4I8G.png)

七、小组分工明细

注:1-2人一组,若2人一组,请说明每位组员的具体贡献明细,要求每位组员都需要既参加数据库设计又参加Java GUI项目编码,课程报告中内容组内自行商量分工。

学号-姓名 身份 贡献比例 完成工作
组长 %
组员 %

八、开发环境说明

名录 内容
操作系统 Win11
Java GUI开发工具 Eclipse/Idea
JDK版本 1.8
数据库及版本 SQL Server 2014或以上均可
JDBC版本 8.2

九、总结

200字左右的小结,包括
(1)完成情况和不足之处
(2)心得体会
(3)建议

这次数据库设计中,已经成功创建了普通用户、管理员、会员等级、会员信息和会员积分这五张表,并且分别完成了各自的数据插入。表结构合理,数据完整性得到了保证,但在实际应用中,还有几个不足之处需要注意和改进。对于普通用户和管理员的身份验证安全性可以进一步增强,例如考虑使用加密存储密码或者其他身份验证方式。会员信息表中姓名和手机号的唯一性限制未加入,可能会导致重复数据的插入。此外,会员积分表的更新时间没有设置默认值,应该考虑使用数据库的当前时间函数自动记录。总体而言,通过这次实践,深刻体会到了良好的数据库设计和数据管理的重要性,建议在未来的项目中,继续关注数据安全性和完整性的提升,以及利用数据库的功能和特性来简化数据处理和提高系统的性能。

十、参考文献

[1] 徐光迎.SQL Server实训项目设计中的“五要”[J].电脑知识与技术:学术交流, 2009.
[2] 戴上平,高丽.基于SQL Server的应用程序设计[J].高等继续教育学报, 1999, 000(006):45-47.DOI:CNKI:SUN:GDHS.0.1999-06-012.
[3] 苗连萍.以SQLServer为例,谈网站数据的安全传输机制[J].数码设计, 2018, 7(15):1.

十一、获取源码

大家 点赞、收藏、关注、评论 啦、查看👇🏻 获取联系方式 👇🏻

文章👇🏻下方名片👇🏻 联系我即可~

全部评论 (0)

还没有任何评论哟~