第三篇 基于JSP 技术的网上购书系统—— 数据库系统设计(网上商城、仿淘宝、当当、亚马逊)
目录
1.逻辑关系设计
2.物理设计
2.1管理员表
2.2留言表
2.3会员登录表
2.4会员表
2.5订单表
2.6订单商品表
2.7产品表
2.8产品货架表
2.9收藏表
2.10类别表
2.11新闻表
数据库系统是用来保存数据的软件系统,当今比较流行的数据库系统,如 MS SQL Server、mySQL 和 Oracle 等均采用关系数据库形式来实现数据的存储、查询等。关系数据库模型是数据库技术发展到今天被广泛采用的技术形式。
使用数据库的好处就是能够方便的通过编程实现大量数据的存储、检索和统计分析。如果不使用数据库系统,则要进行这样的处理就非常繁琐甚至不可行。比如,MS Word 就无法进行数据的统计分析,只能是文字编辑;MS Excel 虽然可以统计分析,但无法实现网络上的数据存储和共享。诸如此类问题都由数据库系统解决。
伴随数据库系统的出现,出现了针对数据库系统的编程技术,Java 技术也是如此,可以进行数据库编程并对其中存储的数据进行处理。
数据库编程的核心是数据库查询语言SQL ,Java 通过传递这些语言编写的命令来操纵数据库中的数据。
本系统采用了这种技术方式来操纵数据库,这是因为本系统要处理的数据也具备数量多、需要共享、需要统计分析等特点,如果不使用关系数据库系统,则几乎无法实现这些功能。
1.逻辑关系设计
根据系统的要求,将设计十一个表格,分别用来存储数据信息和管理过程中产生的数据流信息。其中包含的表格的具体说明如表所示
数据库表格
表 格
逻 辑 名
作 用
管理员表
tb_admin
保存管理员信息
留言表
tb_guest
保存在线留言、评价信息
会员登录表
tb_logininfo
保存会员的登录信息
会员表
tb_userinfo
保存会员信息
订单表
tb_order
保存订单信息
订单商品表
tb_orderproduct
保存订单中商品的信息
产品表
tb_productinfo
保存图书基本信息
产品货架表
tb_sellinfo
保存图书货架信息
收藏表
tb_shoucang
保存收藏信息
类别表
tb_sort
保存图书类别信息
新闻表
tb_news
保存新闻信息
本系统各表之间具有如图6.1所示逻辑关系。

2.物理设计
2.1管理员表
在该表中使用了SQL Server数据库中的一个特殊字段类型——自动编号字段,也就是可以自动递增的字段,用来做主键。这样能保证记录的唯一性,符合关系数据库表的范式,也非常便于维护。
当然,也可以自己定义一个字段作为主键,但要维护该字段数据的唯一性,否则系统将出现数据冗余的错误。因此,多数使用SQL Server数据库的设计人员都采用这种自动编号字段。
管理员表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
username
字符
10
管理员名称
password
字符
10
管理员密码
2.2留言表
在这个表中保存了留言信息。当然其中也包括了用户对商品的评论,使用commenttype字段来标示留言和商品评论。
留言表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
username
字符
20
留言人名称,和会员登录表对应
commenttype
字符
50
留言类型
ip
字符
50
留言人ip地址
time
字符
30
留言时间
title
文本
留言标题
guest
文本
留言内容
reply
文本
留言回复内容
state
字符
50
留言状态
pid
字符
30
产品编号
2.3会员登录表
在这个表中保存了会员的登录信息。其中包含了会员的密码保护问题和会员状态等信息。本系统中“密码保护问题”、“会员标识”两个字段没有用到,在这里给出为了是在后续开发中的扩展需要。
会员登录表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
username
字符
20
会员登录名
password
字符
20
会员登录密码
wenti
字符
50
密码保护问题
daan
字符
50
密码保护问题答案
lastlogintime
字符
30
最近登录时间
tag
字符
10
会员标识
state
字符
10
会员状态
2.4会员表
在这个表中保存了会员的基本信息。
会员表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
username
字符
20
会员登录名,和会员登录表对应
realname
字符
50
真实姓名
字符
100
邮箱
telephone
字符
11
手机
phone
字符
15
固话
address
字符
100
地址
postcode
字符
10
邮编
字符
20
QQ号码
registtime
字符
30
注册时间
2.5订单表
在这个表中保存了订单的信息。这个表中存放了收货人的信息,因为在实际的购物活动中购买者并不一定就是收货者,所以需要用户在购买时输入收货信息,当然如果购买者既是收货者时,本表的信息会从会员信息表中获得。
订单表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
ordernumber
字符
50
订单号
realname
字符
50
收货人真实姓名
telephone
字符
11
收货人手机号码
phone
字符
15
收货人固话
字符
100
收货人邮箱
postcode
字符
10
收货人邮编
address
字符
100
收货人地址
method
字符
10
配送方式
remark
文本
备注
state
字符
50
订单状态,待审核、正在配货、等待发货、已经发货、已经收货、已取消
time
字符
30
下单日期
username
字符
20
会员登录名称,和会员登录表对应
total
货币
总价
lock
字符
10
订单锁定状态
payment
字符
50
支付方式,货到付款、网上支付
paystate
字符
50
支付状态,已支付、未支付
2.6订单商品表
在这个表中保存了订单商品的信息。一个订单会对应多种商品,就要使用订单号作为外键,使订单表和订单商品表建立一对多的关系。
订单商品表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
ordernumber
字符
50
订单号,和订单表对应
productnumber
字符
30
商品编号,和产品表对应
bookname
字符
200
书名,与商品表对应
price
货币
单价
quantity
字符
10
购买数量
sum
货币
总价
description
文本
图书描述
2.7产品表
在这个表中保存了产品(图书)的信息。其中用到的展示图片是保存到硬盘上的,在数据库中只记录了对其的引用(存放地址)。
产品表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
productnumber
字符
30
商品编号
bookname
字符
41
书名
author
字符
100
作者
publish
字符
100
出版社
publishtime
字符
30
出版时间
supply
字符
100
供应商
description
文本
描述
imgurl
字符
500
图书图片
2.8产品货架表
在这个表中保存了图书货架信息。产品表中保存的是产品的固有属性,而产品货架表中保存的是产品的销售信息,如市场价、售价、进价等等。
产品货架表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
productnumber
字符
30
产品编号,与产品表对应
marketprice
货币
市场价
price
货币
售价
cost
货币
进价
profit
货币
利润
groom
字符
10
是否推荐
state
字符
50
是否上架
sort
字符
50
类别
time
字符
30
上架时间
sellnumber
字符
10
销售数量
stock
字符
20
库存
2.9收藏表
在这个表中保存了用户收藏的图书。
收藏表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
productnumber
字符
30
产品编号,与产品表对应
username
字符
20
会员登录名,与会员登录信息表对应
2.10类别表
在这个表中保存了产品类别信息。
类别表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
sortname
字符
50
类别名称
goole
文本
Goole描述(未使用)
state
字符
10
状态
father
字符
50
上级分类名称
2.11新闻表
在这个表中保存了新闻信息。
新闻表的物理结构说明
名 称
类 型
长 度
说 明
id
整型
4
自动编号,作为主键
newstitle
字符
200
新闻标题
newscontent
文本
新闻内容
time
字符
30
发布时间
相关文章:

第三篇 基于JSP 技术的网上购书系统—— 数据库系统设计(网上商城、仿淘宝、当当、亚马逊)
目录 1.逻辑关系设计 2.物理设计 2.1管理员表 2.2留言表 2.3会员登录表 2.4会员表 2.5订单表 2.6订单商品表 2.7产品表 2.8产品货架表 2.9收藏表 2.10类别表 2.11新闻表 数据库系统是用来保存数据的软件系统,当今比较流行的数据库系统,如 MS…...

电脑检测温度软件有哪些?
环境: Win10 专业版 问题描述: 电脑检测温度软件有哪些? 解决方案: 有很多电脑检测温度的软件可供选择,以下是一些常用的电脑温度监测工具: HWMonitor:一款免费的硬件监控软件࿰…...

设计模式 -- 单例模式(Singleton Pattern)
单例模式:最简单的设计模式之一。这种类型的设计模式属于创建型模式,它提供了一种创建对象的最佳方式。这种模式涉及到一个单一的类,该类负责创建自己的对象,同时确保只有单个对象被创建。这个类提供了一种访问其唯一的对象的方式…...

ubuntu给终端加代理服务器
ubuntu给终端加代理 访问google.com 是否可以访问通 curl https://www.google.com如果访问不通说明代理服务器没有配置好。 使用 gedit ~/.bashrc 打开网络配置 gedit ~/.bashrc找到文章的最后添加代理 export http_proxyhttp://127.0.0.1:7890 export https_proxyhttp://…...

centos 6.10 安装 readline 6.2.0
下载地址 解压文件 cd readline-6.2 ./configure -prefix /usr/local/readline-6.2 make && make install安装完成...

IDEA 2023搭建 SpringMVC +FreeMarker+JDBC
1.IDEA的版本,目前最新是2023,要选择旗舰版。笔者曾选择社区版,发现少了很多功能。只能重新安装。 2.安装好以后的第1件事,是设置Maven,并将下载地址改为淘定站,参照这篇一次包会——最新IDEA配置Maven指南…...

RabbitMQ传统数据持久化和Lazy queue的区别
问题引出: 在了解这个问题前我们需要一些前置知识: 关于MQ可靠性,在默认情况下,RabbitMQ会将接收到的信息保存在内存中以降低消息收发的延迟。这样会导致两个问题: 一旦MQ宕机,内存中的信息会丢失 内存空…...

docker部署lnmp环境
文章目录 前期准备:一、部署mysql1.1 获取 Mysql 5.7.22 镜像1.2 启动mysql容器 二、部署php2.1 获取php 7.2镜像2.2 启动php 容器2.3 php的扩展安装 三、部署nginx3.1 获取nginx:1.14镜像3.2 启动nginx容器3.3 编写nginx虚拟主机配置文件,使其支持php3.…...

数据结构 | 带头双向循环链表专题
数据结构 | 带头双向循环链表专题 前言 前面我们学了单链表,我们这次来看一个专题带头的双向循环链表~~ 文章目录 数据结构 | 带头双向循环链表专题前言带头双向循环链表的结构实现双向链表头文件的定义创建节点哨兵位初始化尾插尾删头插头删打印查找指定位置前插入…...

Redis使用Pipeline(管道)批量处理
Redis 批量处理 在开发中,有时需要对Redis 进行大批量的处理。 比如Redis批量查询多个Hash。如果是在for循环中逐个查询,那性能会很差。 这时,可以使用 Pipeline (管道)。 Pipeline (管道) Pipeline (管道) 可以一次性发送多条命令并在执…...

Linux中at命令添加一次性任务
1、工作原理 功能:在某个时间点,执行一次命令。 特点:任务是用户隔离的。 条件:必须要保证atd进程存在。 ps -ef |grep atd 原理:atd进程循环遍历队列里的任务,有任务,且到达执行时间ÿ…...

交换机基础知识之安全配置
交换机在网络基础设施中扮演着重要角色,它促进了设备之间数据包的流动。正因此,采取适当的安全措施来保护网络免受未经授权的访问和潜在攻击至关重要。本文将全面解读交换机基础安全配置知识,并提供实践方案,以保证安全的网络环境…...

Netty入门指南之Reactor模型
作者简介:☕️大家好,我是Aomsir,一个爱折腾的开发者! 个人主页:Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏:Netty应用专栏_Aomsir的博客-CSDN博客 文章目录 参考文献前言单线程…...

Ubuntu20.04软件安装顺序
目录 0.网卡驱动1. sogoupinyin2. terminator3.1zsh3.2升级Cmake(有些后面的软件需要高版本Cmake)4.显卡驱动(在cuda之前)5.CUDA与cudnn,TensorRT6.OpenCV(在ROS之前)6.1先安装各种依赖6.2安装Ceres-1.14.06.3安装Pangolin6.4安装Sophus6.5安装VTK6.5编译…...

适配器模式 ( Adapter Pattern )(6)
适配器模式 ( Adapter Pattern ) 适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁 适配器模式涉及到一个单一的类,该类负责加入独立的或不兼容的接口功能 举个真实的例子,读卡器是作为内存卡和笔记本之间的适配器…...

JAVA G1垃圾收集器介绍
为解决CMS算法产生空间碎片和其它一系列的问题缺陷,HotSpot提供了另外一种垃圾回收策略,G1(Garbage First)算法,通过参数-XX:UseG1GC来启用,该算法在JDK 7u4版本被正式推出,官网对此描述如下&am…...

十方影视后期“领进门”,成长与成就还得靠自身
在这个充满视觉冲击的时代,影视后期制作已经成为了一种炙手可热的艺术形式。而在这个领域,Adobe After Effects(AE)这款软件无疑是王者之一。十方影视后期作为十方教育科技旗下的艺术设计学科,不仅培养了数万名优秀的后…...

Golang之火爆原因
引言 在计算机编程领域,有很多种编程语言可供选择。然而,近年来,Golang(Go)这门相对年轻的编程语言却越来越受欢迎,备受推崇。那么,为什么Golang如此火爆?本文将探讨Golang之火爆原…...

WPF中Dispatcher对象的用途是什么
在WPF (Windows Presentation Foundation) 中,Dispatcher 对象的主要用途是提供一个与UI线程关联的消息循环系统,这允许开发者在UI线程上安排和执行任务。由于WPF的UI元素不是线程安全的,因此任何对UI元素的访问都必须从创建该元素的线程&…...

图论17-有向图的强联通分量-Kosaraju算法
文章目录 1 概念2 Kosaraju算法2.1 在图类中设计反图2.2 强连通分量的判断和普通联通分量的区别2.3 代码实现 1 概念 2 Kosaraju算法 对原图的反图进行DFS的后序遍历。 2.1 在图类中设计反图 // 重写图的构造函数public Graph(TreeSet<Integer>[] adj, boolean dire…...

ubuntu中使用 vscode 连接docker开发环境
文章目录 ubuntu中使用 vscode 连接docker开发环境步骤一:安装 Remote Development 插件步骤二:连接远程环境步骤三:开发 问题解决参考连接 ubuntu中使用 vscode 连接docker开发环境 Remote Development 是一个 Visual Studio Code 插件&…...

【广州华锐视点】海外制片人VR虚拟情景教学带来全新的学习体验
虚拟现实(Virtual Reality,简称VR)是一种利用电脑模拟产生一个三维的虚拟世界,提供用户关于视觉、听觉、触觉等感官的模拟体验的技术。随着科技的进步,VR已经被广泛应用到许多领域,包括游戏、教育、医疗、房…...

龙芯loongarch64麒麟服务器配置yum源
服务器信息: uname -a # 命令 Linux bogon 4.19.90-52.22.v2207.a.ky10.loongarch64 #1 SMP Tue Mar 14 11:18:26 CST 2023 loongarch64 loongarch64 loongarch64 GNU/Linux yum源配置: cd /etc/yum.repos.d/ vim kylin_loongarch64.repo 将下面内容拷贝…...

Centos7 单用户模式修改密码 3步搞定 666 (百分比成功)
1.第一步重新服务器 2.进入这个页面按e进入单用户模式 3.找到linux16这行 在后面添加 init/bin/bash 按ctrlx进入 4.注意是事项直接修改是报错passud: Authentication token manipulation error 需要执行权限:mount -o remount,rw /...

深度学习 机器视觉 车位识别车道线检测 - python opencv 计算机竞赛
0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 深度学习 机器视觉 车位识别车道线检测 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐! 🥇学长这里给一个题目综合评分(每项满分5分) …...

Java主流分布式解决方案多场景设计与实战
Java的主流分布式解决方案的设计和实战涉及到多个场景,包括但不限于以下几点: 分布式缓存:在Java的分布式系统中,缓存是非常重要的一部分。常用的分布式缓存技术包括Redis、EhCache等。这些缓存技术可以用来提高系统的性能和响应…...

docker安装MongoDB数据库,并且进行密码配置
很美的一首小诗> 我在外面流浪,回来时 故乡瘦了一圈—— 墩子叔走了,门前的池水 干了一半。 屋后驼背的柳树 头发散落了一地, 老房子蹲在坟边,屋顶的白云 仍在风中奔跑。 安装配置 要在Docker中安装MongoDB并启用远程连接&…...

ssh脚本找不到命令或者执行无效的解决办法
如图:今天在编写脚本时发现的这个问题, 在排除脚本语法错误、编码格式等情况下,仍然出现“bash 。。未找到命令”的字样 解决办法: 给每台虚拟机的环境变量source一下: 命令如下 source /etc/profile或者输入 vim ~…...

2023年11月18日(星期六)骑行海囗林场公园
2023年11月18日 (星期六) 骑行海囗林场公园(赏枫树林),早8:30到9:00, 大观公园门囗集合,9:30准时出发 【因迟到者,骑行速度快者,可自行追赶偶遇。】 偶遇地点:大观公园门口集合 ,家住东&#x…...

xss 漏洞
1、XSS类型 XSS攻击大致上分为3类: 反射型xss,DOM型xss,存储型xss。前两类为非持久性xss,后者为持久型xss。 1.1 非持久型xss: 1)反射型 XSS 攻击相对于访问者而言是一次性的,具体表现在恶意…...