项目背景:
现下大多数行业都在逐步的将电商都信息化带入到自己企业中,其中主要是以电商服务为主导的互联网平台。像目前主要致力于自己的图书,同时紧紧围绕图书来展开。通过互联网平台的赋能,能够给图书行业提供智能化的服务,在为用户提供实质性购买帮助的同时,提高自己图书的服务质量。所以图书销售管理系统更加符合时下图书行业的需求,更加能适应图书行业目前的竞争压力。该销售系统以“互联网+”B2C服务为模式,在为用户提供购买图书服务的同时,可以帮助图书实现销量的突破,同样也可以为图书行业的智能化发展做出努力。图书销售系统提供给书店包括图书编目、销售等方面的一体 化解决方案。同时还提供顾客管理等功能。其业务需求有图书零售购买,顾客购书后收银台进行结账。输入需要购买的图书和数量, 计算出总金额,由用户进行结账。并提供销售小票流水号作为销售的 单据。图书零售退货,顾客对已购买的图书进行退货,需 要输入销售的小票流水号为办理凭证。系统查询数据库进行数据验证,对符合要求的图书进 行退货。新书编目,书店从出版社购买新的图书后在这里进行编目。只有编目后的图书才可 以进行销售。工作人员可以使用 ISBN、书名、作者、出版社等多种方式进行查找已编目的 图书。也可以对图书资料修改,即对已编目的图书修改图书的基本信息、零售价和最低折扣 价设置。
需求分析:
前台用户管理模块:
(1)用户注册登录:用户注册为会员并登录图书销售管理系统;用户对个人信息的增删改查,比如个人资料,密码修改。
(2)用户查看图书:用户进行图书信息的阅览,通过发现喜欢的图书后可以加入到自己的收藏夹、点赞、购买。
(3)我的收藏:用户可以查看自己以往收藏起来的图书,同时可以移除自己的收藏夹。
(4)用户购买图书:用户对喜欢的图书可以进行购买,填写好购买数量,订单地址,订单备注,当用户确定订购完毕后,将其提交给服务器后台系统,并生成订单。
(5)用户付款:用户在订单中心可以查看自己提交的订单,并且对订单进行支付,编辑,售后。
(6)我的地址:用户可以查看并且管理自己的收货地址。
(7)我的订单:用户可以查看到自己订单的信息。
(8)留言反馈:用户可以在系统的前台进行留言交流。
后台管理员管理模块:
(1)用户管理:管理员可以对前台上注册过的用户信息进行管控。
(2)书籍分类/书籍管理:管理员可以对图书销售管理系统中的书籍分类以及书籍信息进行发布和维护。
(3)订单管理:管理员对用户订购的图书订单进行管理。
(4)留言板管理:管理员可以对前台用户提交的留言信息进行管控。
1. 实体分析:
图书零售购买
对于书店的会员可以提供相应的折扣。输入需要购买的图书和数量, 计算出总金额,由用户选择使用现金或会员卡进行结账。(用户选择用会员卡或现金来进行结账,
1.会员(Member)处理会员卡支付:
如果用户选择使用会员卡支付,在销售单中记录会员ID。
系统根据会员ID查询会员信息,通过用户提供的会员id来判断其属于哪一个会员组,并用该会员组的折扣率对其进行折扣,并检查会员卡余额是否足够支付本次购买金额。结束后计算相应积分,消费多少钱就有多少积分
如果会员卡余额足够支付,系统扣除对应金额并更新会员卡余额。
2.现金支付处理:
如果用户选择使用现金支付,在销售单中记录现金支付的金额。
在结账完成后,系统需要处理现金支付的找零等逻辑。此时没有计算积分功能
并提供销售小票流水号作为销售的 单据。
图书零售退货
顾客对已购买的图书进行退货,需 要输入销售的小票流水号为办理凭证。系统查询数据库进行数据验证,对符合要求的图书进 行退货。
(数据流程:
顾客退货请求 -> 输入销售单小票流水号 -> 系统检索销售单信息 -> 更新库存数量 -> 处理会员卡退款/积分回退
具体操作:
1. 销售单(Sales Order)记录销售信息和小票流水号:
- 在销售单中一个属性,用于记录销售的小票流水号,可以命名为"Receipt Number"。
- 当顾客购买图书时,系统生成销售单并记录小票流水号。
2. 图书(Book)处理退货库存更新:
- 当顾客退货时,系统需要更新对应图书的库存数量。
- 可以通过在图书表中添加一个属性来记录当前库存数量,并在退货时进行相应的更新操作。
3. 会员(Member)处理退货金额或积分回退:
- 如果顾客使用会员卡支付,系统需要处理退货金额的回退或积分的回退。
- 根据退货金额或者退货数量,系统可以更新会员卡余额或者积分信息。)
新书编目,书店从出版社购买新的图书后在这里进行编目。只有编目后的图书才可以进行销售。
(在书店购买新的图书后,需要在系统中录入这些图书的信息。这些信息可能包括书名、作者、ISBN、出版社、定价,审核通过的图书需要被标记为可销售状态,这样才能在销售流程中被顾客购买。需要将将图书的状态字段从“未编目”或“未审核”改为“可销售”)
工作人员可以使用 ISBN、书名、作者、出版社等多种方式进行查找已编目的图书。也可以对图书资料修改,即对已编目的图书修改图书的基本信息、零售价和图书状态设置。
根据需求和功能描述,可以给出以下实体及其属性:
1. 图书(Book):
- ISBN(主键)
- 书名
- 作者
- 出版社
- 零售价
- 图书状态
- 数量
2. 进货单(Purchase Order):
- 订单号(主键)
- 总金额
- 出版社
3. 销售单(Sales Order):
- 小票流水号(主键)
- 销售日期
- 总金额
- 会员ID(外键)
- 支付方式
4. 会员(Member):
- 会员ID(主键)
- 姓名
- 手机号
- 有效期
- 消费金额
- 余额
- 状态(正常、挂失、特别处理)
- 密码
5. 出版社(Publisher):
- 出版社ID(主键)
- 出版社名称
- 地址
- 联系方式
6. 操作员(Operator):
- 操作员ID(主键)
- 用户名
- 密码
- 权限级别
7. 会员组(Member Group):
- 组ID(主键)
- 组名
- 折扣率
- 入会条件
- 积分换算比例
8. 报表(Report):
- 报表ID(主键)
- 报表类型(图书销售单、图书进货单、会员列表、出版社列表、销售单等)
- 生成日期
- 支付方式
- 报表内容
2、实体间的联系:
1. 图书(Book)与进货单(Purchase Order)之间是一对多关系。一个进货单可以包含多本图书,而一本图书只能属于一个进货单。
2. 图书(Book)与销售单(Sales Order)之间也是一对多关系。一个销售单可以包含多本图书,而一本图书只能属于一个销售单。
3. 销售单(Sales Order)与会员(Member)之间是多对一关系,因为多个销售单可以对应同一个会员,但一个销售单只能对应一个会员。
4. 图书(Book)与出版社(Publisher)之间是多对一关系。一家出版社可以出版多本图书,但一本图书只能由一个出版社出版。
5. 会员(Member)与会员组(Member Group)之间是多对一关系。多个会员可以属于同一个会员组,但一个会员只能属于一个会员组。
6. 操作员(Operator)与系统设置(System Setting)之间是一对多关系。一个操作员可以拥有多个系统设置权限,而一个系统设置只能由一个操作员进行设置。
7. 报表(Report)与操作员(Operator)之间是多对一关系。多个报表可以由同一个操作员生成,但一个报表只能由一个操作员生成。
3. 功能需求对应表设计:
- 需要设计图书表(Book)、出版社表(Publisher)、会员表(Member)、会员组表(MemberGroup)销售单表(Sales Order)、报表(Report)等。
- 考虑数据的一致性和完整性,需要对一些属性添加约束和默认值,确保数据的准确性。
4. 报表需求:
- 需要设计报表处理相关的表结构,如销售单表用于生成销售报表等。
概念结构设计:
- 实体:
- 图书(Book):ISBN(主键)、书名、作者、价格等。
- 进货单(Purchase Order):订单号(主键)、进货日期、总金额等。
- 销售单(Sales Order):订单号(主键)、销售日期、总金额、会员ID等。
- 会员(Member):会员ID(主键)、姓名、手机号、折扣等。
- 出版社(Publisher):出版社ID(主键)、出版社名称、地址等。
- 关系:
- 图书与进货单(一对多):一个进货单可以包含多本图书。
- 图书与销售单(一对多):一个销售单可以包含多本图书。
- 会员与销售单(一对多):一个会员可以有多个销售订单。
- 进货单与出版社(多对一):一个进货单对应一个出版社。
逻辑结构设计:
- 数据库表设计(示意):
- 图书表(Book):
- ISBN(主键)
- 书名
- 作者
- 出版社
- 零售价
- 图书状态
- 数量
- 进货单表(Purchase_Order):
- 订单号(主键)
- 总金额
- 出版社
- 销售单表(Sales_Order):
- 小票流水号(主键)
- 销售日期
- 总金额
- 会员ID(外键)
- 支付方式
- 会员表(Member):
- 会员ID(主键)
- 姓名
- 手机号
- 有效期
- 消费金额
- 余额
- 状态(正常、挂失、特别处理)
- 密码
- 出版社表(Publisher):
- 出版社ID(主键)
- 出版社名称
- 地址
- 联系方式
物理结构设计
1. 前端界面:
- 包括图书销售系统的用户界面,供工作人员使用。
- 包括图书销售页面、会员管理页面、进货页面、退货页面、报表页面等。
2. 后端服务器:
- 包括处理前端请求的服务器端应用程序。
- 处理来自前端界面的请求,并与数据库进行交互。
3. 数据库:
- 存储图书信息、销售信息、会员信息、进货信息、退货信息等。
- 可以采用关系型数据库(如MySQL、PostgreSQL)或者NoSQL数据库(如MongoDB)。
4. 数据访问层(DAO):
- 提供对数据库的访问接口,用于执行数据库操作。
- 包括图书DAO、销售DAO、会员DAO等。
5. 业务逻辑层:
- 包括处理业务逻辑的代码和算法。
- 处理图书销售、会员管理、进货退货、报表生成等功能。
6. 控制器层:
- 处理前端请求和路由,调用相应的业务逻辑处理程序。
- 可以采用MVC(Model-View-Controller)模式或者其他类似的设计模式。
7. 系统管理模块:
- 包括系统设置、操作员管理、数据备份与恢复等功能。
- 管理系统的配置信息,包括操作员权限、数据库连接信息等。
8. 报表生成模块:
- 用于生成各种报表,如图书销售单、图书进货单、会员列表、出版社列表、销售单等。
9. 安全性控制:
- 包括用户身份验证、访问权限控制、数据加密等功能,以保护系统和数据安全。