网上书店管理系统

目录

一、系统需求分析

二、数据库概念结构设计

四、数据库物理实现

五、数据库功能调试


一、系统需求分析

1.系统背景

       当今互联网的迅速发展,使得人们获取信息变得极其便利。在从前,人们以线下书店购买书籍的方式获取知识,常常因时间或空间的限制受到不同程度的信息闭塞。如今电子书越来越流行,网上书店更能打开信息交流的窗口,为读者节省时间,因此,一个网上书店管理系统十分必要。

2.需求分析

本系统旨在管理书店书籍信息,并为管理员和用户提供设计。

根据书店的需求:书店对于书籍有进货、销售两种操作。图书应包含:编号、书名、作者、出版社、版本、定价、库存等信息便于用户和管理员查找、操作。

本系统的使用者有以下两类:1.用户2.管理员,其中用户查看前台,管理员管理后台。二者需求如下:

(1)用户

注册后填写详细信息:

用户名(Bname)、性别(Bsex)、地址(Bsaddress)、ID(Bno)、密码(Bpw)。

用户操作:

查看图书详细信息、购买图书、管理个人信息;

(2)管理员

非初始管理员由初始管理员添加:

工号(Sno)、密码(Spw)、姓名(Sname)、性别(Ssex)。

       管理员操作:

增加图书信息、删除图书信息、查找图书、查看图书详细信息、更新图书信息(数量、书名、增加图书属性等),更改管理员。

3.系统功能图

图1 网上书店管理系统功能图

网上书店管理系统的业务主要有注册登录、用户购买图书、管理员操作图书三个业务构成,用户进入系统后点击操作,系统响应返还信息,如图2。

图2 业务流程图

以下为业务流详细分析:

  1. 注册登录

注册登录流程:当用户或管理员使用本系统时,首先将在页面上选择登录身份(用户或管理员身份)之后登录,系统搜索用户信息库,产出用户信息单,若登录输入信息与表单相符,则进入系统;若表单为空则说明没有该用户,需要用户注册,注册时输入完整用户信息,之后便可进入系统。

图3 用户登录流程图

  1. 用户购买图书

用户购买图书流程:用户通过对图书的查询后可创建订单进行图书的购买,此时管理员将查询该图书查看库存量是否足以售卖该书,若库存足够,则产生出库单,管理员依照出库单从书库中出库,并将订单确认单返还给用户,用户下单成功。

图4 用户购买图书流程图

  1. 管理员操作图书

管理员操作图书流程:管理员登录后进入管理员详细页面,其中有更新管理员操作和图书操作两种,进入图书操作后产生图书表单,管理员在表单中选择需要修改的图书或增加新书。

图5 管理员操作流程图

数据流图表达了数据和处理过程的关系,对网上书店管理系统使用自顶向下的结构化分析可得图6、图7、图8,它们表示当用户下单后管理员调整图书内容和产生订单的数据流向。

图6 第0层数据流图

图7 第1层数据流图

图8 第2层数据流图

数据字典是各类数据描述的集合,在此主要对数据项、数据结构和处理过程进行描述,反应基础数据单位、数据间联系与处理其的方式。

1.数据项

数据项:图书编号(Bookno)

含义说明:唯一标识每本书

类型:字符型

长度:4

取值范围:0000~9999

取值含义:标识本书店进的第几种书

与其他数据项的逻辑关系:无

数据项:书名(Bookname)

含义说明:图书的名字,UNIQUE不可重复

类型:字符型

长度:40

取值含义:每种书的名字

与其他数据项的逻辑关系:无

2.数据结构

数据结构:图书

含义说明:是网上书店管理系统的主体数据结构,定义了一本图书的所有信息

组成:编号、书名、类型、价格、库存、出版社

数据结构:管理员

含义说明:是网上书店管理系统的主体数据结构,定义了一个管理员的所有信息

组成:工号、姓名、性别、密码

3.处理过程

处理过程:更新图书

说明:更新图书信息

输入:本书编号、书名、类型、价格、出版社、增加的数量

输出:图书信息

处理:在进货中有新书时,为新书登记入库,或者更改图书的价格等信息。

处理过程:修改订单

说明:书被卖出

输入:本书编号,出货数量,书名,目的地址

输出:出货信息

处理:在用户购买图书后,产生出货订单,用户可以自行更改订单信息。

二、数据库概念结构设计

(一)实体分析

本系统的实体有四个,分别为两个使用者和两个被操作者:

1.管理员2.用户3.图书4.订单。

其中管理员负责后台管理图书数据,用户在平台上购买图书,图书作为该平台的交易实体,订单由用户选定购买图书后下单产生,记录购买信息。

综合实体与数据字典分析对四个实体的属性分别进行分析,并画出实体与属性的关系图如下:

1.管理员的属性

管理员有四个属性:工号(Sno)、密码(Spw)、姓名(Sname)、性别(Ssex)。工号作为主码,确定是哪一位管理员,工号和密码用于管理员登录操作,姓名、性别为管理员基本信息。

图9 管理员实体和属性

2.用户的属性

用户实体有五个属性:账号(Bno)、用户名(Bname)、性别(Bsex)、地址(Bsaddress)、密码(Bpw)。账号作为主码,不可重复,用于确定用户,账号与密码用于该用户的登录操作、地址用于确定其购买的书籍发往何处,用户名、性别为用户基本信息,也可以不填性别(保密)。

图10 用户实体和属性

3.图书的属性

图书有六个属性:编号(Bookno)、书名(Bookname)、类型(Booktype)、出版社(Press)、价格(BPrice)、库存(Binventory)。编号作为主码,书名、类型、出版社方便用户查找自己需要的书、库存:当用户买走书时库存减少,当库存为0,用户不能购买该书,需要管理员进货,价格为书本的基本信息。

图11 图书实体和属性

4.订单的属性

订单有五个属性:用户名/购买者姓名(Bname),书名(Bookname),目的地址(Bsaddress),数量(Quantity),订单号(Ono)。其中订单号为主码,用户名和书名来自购买者提供的信息,目的地址和数量有用户(购买者)按需修改。

图12 订单实体和属性

根据需求分析,各个实体之间有以下联系:

1.管理员与图书

一个管理员可以更新多本图书,一本图书的信息可以被多个管理员修改,多对多。

2.管理员与其他管理员

一个旧的管理员可以增加多个新管理员、更改多个管理员的信息,多对多。

3.用户与图书

一个用户可以购买多种图书,一种图书可以由多个用户购买,购买时需要选择购买数量,多对多。

4.用户与订单

一个用户可以修改自己的多个订单,一个订单只能由创建它的一个用户修改,一对多。

5.图书、用户和订单

一个用户和他购买的多本图书可以产生多个订单,一个订单可以由多个图书和一个用户产生。

E-R

根据前面的实体属性图和联系分析画出整个系统的E-R图,具体的E-R图如图13。各实体的属性分别如下:

图书:{ 编号,书名,类型,出版社,价格,库存}

管理员:{ 工号,姓名,性别,密码}

用户:{ 账号,用户名,性别,地址,密码}

订单:{目的地址,书名,订单号,数量,用户名}

图13 网上书店管理系统E-R图

关系模型

将E-R图中9个实体和联系转换为以下关系模型,该关系模型由5个关系模式组成:

图书:(编号,书名,类型,出版社,价格,库存)

管理员:(工号,姓名,性别,密码)

用户:(账号,用户名,性别,地址,密码)

订单:(订单号,目的地址,书名,编号,数量,账号

购买:(账号编号,数量)

根据E-R图画出cdm图:

图14 网上书店管理系统.cdm图

在PowerDesogner菜单栏-工具中选择创建pdm和ldm图。

一对多关系的转化:

       一个用户修改多个订单,一个订单只能由一个用户修改;

多对多关系的转化:

       一个用户可以购买多种图书,一种图书可以被多个用户购买;

       一个管理员更新多种图书,一种图书由多个管理员管理;

       一个管理员管理其他多个管理员,一个管理员可以被多个管理员管理;

    一个用户和一本书可以产生多个订单,一个订单可以由一个用户和多本图书产生。

(二) 逻辑模型设计(.LDM图)

图15 网上书店管理系统.pdm图

图16 网上书店管理系统.ldm图

四、数据库物理实现

(一)表设计

图书表

列名

数据类型

允许Null值

说明

Bookno

char(100)

Unchecked

书籍编号

Bookname

char(20)

Unchecked

书名

Booktype

char(30)

Unchecked

类型

Binventory

smallint

Unchecked

库存

BPrice

float

Unchecked

价格

Press

varchar(10)

Unchecked

出版社

订单表

列名

数据类型

允许Null值

说明

Bname

Char(20)

Unchecked

用户名

Bookname

Char(20)

Unchecked

书名

Bsaddress

Char(30)

Unchecked

地址

Quantity

bigint

Unchecked

数量

Ono

Char(20)

Unchecked

订单号

Bno

Char(20)

Unchecked

用户账号

管理员表

列名

数据类型

允许Null值

说明

Sno

Char(20)

Unchecked

管理员工号

Spw

Char(20)

Unchecked

管理员密码

Sname

Char(20)

Unchecked

管理员名字

Ssex

Char(2)

checked

管理员性别

用户表

列名

数据类型

允许Null值

说明

Bno

Char(20)

Unchecked

用户账号

Bpw

Char(30)

Unchecked

用户密码

Bname

Char(20)

Unchecked

用户名字

Bsex

Char(2)

checked

用户性别

Bsaddress

Char(30)

Unchecked

用户地址

(二)创建表和完整性约束代码设计

创建图书表:

/*==============================================================*/

/* Table: Book                                                  */

/*==============================================================*/

create table Book (

   Bookno               char(100)            not null,

   Bookname             char(20)             not null,

   Booktype             char(30)             not null,

   Binventory           smallint             not null,

   BPrice               float                not null,

   Press                varchar(10)          not null,

   constraint PK_BOOK primary key nonclustered (Bookno)

)

go

创建订单表:

/*==============================================================*/

/* Table: BookOrder                                             */

/*==============================================================*/

create table BookOrder (

   Bname                char(20)             not null,

   Bookname             char(20)             not null,

   Bsaddress            char(30)             not null,

   Quantity             bigint               not null,

   Ono                  char(20)             not null,

   Bno                  char(20)             not null,

   constraint PK_BOOKORDER primary key nonclustered (Ono)

)

go

创建管理员表:

/*==============================================================*/

/* Table: Su                                                    */

/*==============================================================*/

create table Su (

   Sno                  char(20)             not null,

   Spw                  char(20)             not null,

   Sname                char(20)             not null,

   Ssex                 char(2)              null,

   constraint PK_SU primary key nonclustered (Sno)

)

go

创建用户表:

/*==============================================================*/

/* Table: Buyers                                                */

/*==============================================================*/

create table Buyers (

   Bno                  char(20)             not null,

   Bpw                  char(10)             not null,

   Bname                char(20)             not null,

   Bsex                 char(2)              null,

   Bsaddress            char(30)             not null,

   constraint PK_BUYERS primary key nonclustered (Bno)

)

go

添加外键:

alter table BookOrder

   add constraint FK_BOOKORDE_修改_BUYERS foreign key (Bno)

      references Buyers (Bno)

go



alter table 产生

   add constraint FK_产生_产生_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 产生

   add constraint FK_产生_产生2_BOOKORDE foreign key (Ono)

      references BookOrder (Ono)

go



alter table 产生

   add constraint FK_产生_产生3_BUYERS foreign key (Bno)

      references Buyers (Bno)

go



alter table 更新

   add constraint FK_更新_更新_SU foreign key (Sno)

      references Su (Sno)

go



alter table 更新

   add constraint FK_更新_更新2_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 管理

   add constraint FK_管理_管理_SU foreign key (Sno)

      references Su (Sno)

go



alter table 管理

   add constraint FK_管理_管理2_SU foreign key (Su_Sno)

      references Su (Sno)

go



alter table 购买

   add constraint FK_购买_购买_BOOK foreign key (Bookno)

      references Book (Bookno)

go



alter table 购买

   add constraint FK_购买_购买2_BUYERS foreign key (Bno)

      references Buyers (Bno)

go

、数据库功能调试

(一)页面设计展示

管理员首页设计:

    管理员首页有图书管理和管理员管理功能,分别用于图书的增删查改和管理员的增删查改。

用户首页设计

    用户首页包括图书、订单管理、个人管理三个功能选项,其中图书用于用户查看所有图书,订单功能包括用户订单的增删查改,个人管理用于修改用户自身的信息,如姓名、密码、地址等。

登录页面设计

    登录界面有用户和管理员两个选项,其中工号(账号)作为主键区分管理员(用户)、输入密码时可以隐藏。

增加测试

    原表:

增加一行:

(二)系统运行的软件环境

在电脑硬件环境的支持下,系统运行的时候还需要软件的支持,由于本系统是基于Windows平台开发,所以运行的硬件环境需要还需要安装有Windows的操作系统,其中运用SQL Server数据库存放数据,主界面使用Dreamweaver设计。

猜你喜欢

转载自blog.csdn.net/l203018/article/details/131813880