数据库MySQL课程设计报刊订阅系统
1. 简介
数据库是现代信息系统中常用的数据存储和管理方式之一。MySQL作为其中一种常见的关系型数据库管理系统,被广泛应用于各种应用程序中。
本文将介绍一个基于MySQL数据库的课程设计报刊订阅系统。该系统旨在帮助用户进行报刊的订阅和管理,同时提供了课程设计的实例,展示了MySQL数据库的使用方法。
2. 系统设计
2.1 数据库设计
在设计报刊订阅系统的数据库时,我们需要考虑用户、报刊和订阅三个主要的实体。
2.1.1 用户表格
字段名 | 类型 | 描述 |
---|---|---|
id | int | 用户ID |
username | varchar | 用户名 |
password | varchar | 密码 |
varchar | 邮箱 | |
phone | varchar | 电话号码 |
2.1.2 报刊表格
字段名 | 类型 | 描述 |
---|---|---|
id | int | 报刊ID |
name | varchar | 报刊名称 |
price | decimal | 报刊价格 |
2.1.3 订阅表格
字段名 | 类型 | 描述 |
---|---|---|
id | int | 订阅ID |
user_id | int | 用户ID |
newspaper_id | int | 报刊ID |
start_date | date | 订阅开始日期 |
end_date | date | 订阅结束日期 |
2.2 系统功能
该系统主要提供以下功能:
- 用户注册和登录
- 报刊的浏览和订阅
- 用户订阅的查询和管理
在此我们只介绍部分功能的代码实现,完整代码请参考附录。
3. 代码示例
3.1 用户登录
用户登录是系统的基础功能,下面是一个使用MySQL数据库和Python的代码示例:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='user', password='password',
host='127.0.0.1',
database='subscription_system')
# 获取数据库游标
cursor = cnx.cursor()
# 获取用户输入的用户名和密码
username = input("请输入用户名:")
password = input("请输入密码:")
# 构造查询语句
query = "SELECT * FROM users WHERE username = %s AND password = %s"
# 执行查询
cursor.execute(query, (username, password))
# 获取查询结果
result = cursor.fetchone()
if result:
print("登录成功!")
else:
print("用户名或密码错误!")
# 关闭游标和数据库连接
cursor.close()
cnx.close()
3.2 报刊浏览和订阅
用户登录后,可以浏览系统中的报刊,并选择订阅感兴趣的报刊。下面是一个简单的代码示例:
import mysql.connector
# 连接数据库
cnx = mysql.connector.connect(user='user', password='password',
host='127.0.0.1',
database='subscription_system')
# 获取数据库游标
cursor = cnx.cursor()
# 查询所有报刊
query = "SELECT * FROM newspapers"
# 执行查询
cursor.execute(query)
# 获取查询结果
result = cursor.fetchall()
# 打印报刊列表
for row in result:
print("报刊ID: %s, 报刊名称: %s, 报刊价格: %s" % (row[0], row[1], row[2]))
# 用户选择订阅的报刊ID
newspaper_id = input("请输入要订阅的报刊ID:")
# 获取当前日期
import datetime
start_date = datetime.datetime.now().date()
# 构造插入订阅记录的语句
query = "INSERT INTO subscriptions (user_id, newspaper_id, start_date) VALUES (%s, %s, %s)"
# 执行插入
cursor.execute(query, (user_id, newspaper_id, start_date))
# 提交事务
cnx.commit()
# 关闭游标和数据库连接
cursor.close()