Skip to content

BeenLi/BookRentalSystem

Repository files navigation

BookRentalSystem

一个简单的租书系统

1. 需求文档

基本需求如下:

  1. 记录书店所有的书
  2. 记录办卡的顾客信息
  3. 记录借书的订单信息

2. 项目构架

mark

UI wxPython==4.1.1
Python 数据库驱动库 PyMySQL==1.0.2
数据库 MySQL==5.0.22-community-nt

3. 项目demo

一、书单信息(表1)

表1

二、顾客信息(表2)

表2

三、租书信息(表3)

表3

4. 项目特色

  • 每隔1分钟自动提交数据到数据库(保存), 每隔5小时自动备份到[D:\星月书店备份数据文件夹\当前日期.xlsx] (备份)
  • 程序打开时自动去数据库提取数据(也仅访问一次),然后保存到一个变量中;此后所有操作只对该变量操作,不会立即反应到数据库中。只有当用户点击提交或者保存才会提交到数据库。
  • 程序在每次数据修改之前,设有一次备份;所以允许用户进行一次返回操作(如果进行两次修改,那么第二次修改会覆盖第一次备份,也即只能返回一步)
  • 考虑到有可能提交数据库失败,数据库访问速度等问题,本程序放弃使用外键,取而代之由程序内部逻辑保证数据一致性。
  • 可以选择导入导出一个表或多个表(软件Excel文件交互)
  • 当有顾客借书时,配合扫码机,只需要扫描ISBN,系统自动匹配数据库中的书名等信息,添加一条记录。
  • 当有顾客还书时,也只需要扫码查找对应记录点击还书即可,日期由软件自动补全。
  • 顾客办卡时,只需要输入对应顾客姓名,软件自动生成一个唯一的id。

5. 运行条件

  1. 下载软件
  2. 创建MySQL账户(账户名和密码 见 db_info.py)
  3. book_rental.sql脚本放到跟软件同一目录
  4. 运行软件(如果不存在数据库, 会自动创建)