mysql数据库课程设计 网上书店图书销售数据库管理系统数据库设计word实验报告

一、需求概述

随着信息化的发展,计算机网络走进了人们的生活,人们的生活变得越来越方便。网络购物的兴起方便了人们的生活,网上书店可以让人更加便捷、足不出户地买到心仪的书籍。此外,网上购书减少了许多中间销售代理,价格会比实体店更低。同时,网上书店是信息化购物对商家来说大大降低了劳力的消耗。

(1)该系统中用户可分为管理员和客户两类;

(2)管理员可以向系统添加图书信息,图书信息包括编号,名称,作者,价格,出版社,折扣,所属图书类别(一本书只能属于一种类别,一个类别可以包含多本书),可对图书信息进行修改;

(3)客户注册时需输入客户昵称、邮箱、电话、性别等信息,客户可以浏览图书信息,可以订购图书(一个客户一次可以订购多本图书,一本图书也可以被多个客户订购),订购完成后客户可以查看订单信息,订单信息包括订购的图书,数量,订购日期,发货日期等;

(4)管理员可以对客户信息和订单信息进行管理。

三、关系模型设计

3.1、关系模型设计

将E-R图转化为关系模式(下划线为主键,下划线加斜体为外键)

客户(客户编号,姓名,地址,联系电话)

操作员(编号,用户名,密码,角色)

图书类别(类别编号,类别名称)

图书(图书编号类别编号,图书名称,作者,出版社,进价,库存数量)

订单(订单号客户编号,下单时间,支付时间,支付方式,金额,订单状态)

订单详情(流水id订单号,图书编号,数量,售价,折扣)

设计表结构

(1)操作员表tb user

列名

说明

数据类型

约束

U_Id

用户id

int

主码(自增字段)

U_Name

用户名

varchar(10)

not null

U_Password

密码

varchar(30)

Not null

U_Role

角色

Varchar(10)

管理员,销售员,库管

(2)图书类型信息表tb type

列名

说明

数据类型

约束

T_Id

图书类型编号

int

主码(自增字段)

T_Name

类别名称

varchar(10)

not null

(3)客户信息表tb customer

列名

说明

数据类型

约束

C_Id

客户编号

Varchar(20)

主码

C_Name

客户名称

varchar(20)

not null

C_Adress

收获地址

varchar(80)

not null

C_Tel

联系电话

varchar(20)

not null

(4)图书信息表tb book

列名

说明

数据类型

约束

B_Isbn

图书编号

Varchar(30)

主码

B_Name

图书名称

varchar(30)

not null

B_Author

作者

varchar(10)

not null

B_Price

进价

float

not null

B_Publish

出版社

varchar(20)

B_stocknum

库存数量

int

Default 0

T_Id

图书类别编号

int

not null,外键

(5)订单信息表tb order

列名

说明

数据类型

约束

O_Id

订单号

Int

主码,自增id

C_Id

客户编号

Varchar(20)

not null,外键

O_date

下单时间

Datetime

not null

O_paydate

支付时间

Datetime

O_paytype

支付方式

varchar(10)

O_paysum

付款金额

float

O_state

发货状态

Int

0下单,1支付,2取消,3发货,4退货

(6)订单详细信息表tb orderdetail

列名

说明

数据类型

约束

Id

流水号

id

主码,自增id

O_Id

订单号

varchar(20)

not null,外键

B_Isbn

图书编号

Varchar(30)

not null

O_count

数量

Int

not null

O_discount

折扣

float

默认1,不打折

3.2、关系间联系设计

实体完整性:操作员表以用户id作为主键,图书类型信息表以类别编号作为主键,客户信息表以客户编号作为主键,图书信息表以图书编号作为主键。订单信息表以订单编号作为主键,订单详细信息表以自增的id作为主键。

参照完整性设计:图书信息表中的图书类别编号作为外键,参照图书类别表的主键。订单表的客户编号作为外键,参照客户表的主键,订单详情表的订单号作为外键,参照订单表的主键,订单详情表的图书编号作为外键,参照图书信息表的主键。

用户定义的完整性:每个表都相应的定义了合理的非空约束和默认值约束。

四、创建数据库

4.1、创建数据库

CREATE DATABASE booksell DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

六、问题解决及方法

问题1:创建表时,必须先创建无外键依赖的表,再创建有外键依赖的表,否则,外键依赖的表还不存在时,无法创建有外键依赖的表。

问题2:字符串长度应留够足够的长度。再此次作业中,出现了在插入数据时字符串长度不够的问题,又返回去修改表结构中字段的长度。教训是:如果存储的是字符类型数据,应该尽量使用varchar类型,并设置足够的长度,此类型是可变长度类型,会根据实际存储的字符分配空间,并不会提前分配空间,不会造成资源的浪费。

问题3:插入数据时应先插入无外键依赖的数据,再插入有外键依赖的数据。例如,必须先插入图书类型表的数据,再插入图书信息表的数据,否则,在插入图书数据时,T_Id依赖图书类型数据还不存在时则会报错,无法插入。

数据库设计定制、代做、交流学习:数据魔方99的个人空间-数据魔方99个人主页-哔哩哔哩视频

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值