当前位置: 首页 > news >正文

第三篇 基于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所示逻辑关系。

图6.1 表6-1的逻辑关系
图6.1 表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

真实姓名

email

字符

100

邮箱

telephone

字符

11

手机

phone

字符

15

固话

address

字符

100

地址

postcode

字符

10

邮编

qq

字符

20

QQ号码

registtime

字符

30

注册时间

2.5订单表

        在这个表中保存了订单的信息。这个表中存放了收货人的信息,因为在实际的购物活动中购买者并不一定就是收货者,所以需要用户在购买时输入收货信息,当然如果购买者既是收货者时,本表的信息会从会员信息表中获得。

订单表的物理结构说明

名  称

类  型

长  度

说  明

id

整型

4

自动编号,作为主键

ordernumber

字符

50

订单号

realname

字符

50

收货人真实姓名

telephone

字符

11

收货人手机号码

phone

字符

15

收货人固话

email

字符

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:一款免费的硬件监控软件&#xff0…...

设计模式 -- 单例模式(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进程循环遍历队列里的任务,有任务,且到达执行时间&#xff…...

交换机基础知识之安全配置

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

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…...

RestClient

什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端&#xff0c;它允许HTTP与Elasticsearch 集群通信&#xff0c;而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级&#xff…...

postgresql|数据库|只读用户的创建和删除(备忘)

CREATE USER read_only WITH PASSWORD 密码 -- 连接到xxx数据库 \c xxx -- 授予对xxx数据库的只读权限 GRANT CONNECT ON DATABASE xxx TO read_only; GRANT USAGE ON SCHEMA public TO read_only; GRANT SELECT ON ALL TABLES IN SCHEMA public TO read_only; GRANT EXECUTE O…...

Java 加密常用的各种算法及其选择

在数字化时代&#xff0c;数据安全至关重要&#xff0c;Java 作为广泛应用的编程语言&#xff0c;提供了丰富的加密算法来保障数据的保密性、完整性和真实性。了解这些常用加密算法及其适用场景&#xff0c;有助于开发者在不同的业务需求中做出正确的选择。​ 一、对称加密算法…...

ios苹果系统,js 滑动屏幕、锚定无效

现象&#xff1a;window.addEventListener监听touch无效&#xff0c;划不动屏幕&#xff0c;但是代码逻辑都有执行到。 scrollIntoView也无效。 原因&#xff1a;这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作&#xff0c;从而会影响…...

Java多线程实现之Thread类深度解析

Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Qemu arm操作系统开发环境

使用qemu虚拟arm硬件比较合适。 步骤如下&#xff1a; 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载&#xff0c;下载地址&#xff1a;https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...

tomcat入门

1 tomcat 是什么 apache开发的web服务器可以为java web程序提供运行环境tomcat是一款高效&#xff0c;稳定&#xff0c;易于使用的web服务器tomcathttp服务器Servlet服务器 2 tomcat 目录介绍 -bin #存放tomcat的脚本 -conf #存放tomcat的配置文件 ---catalina.policy #to…...

论文阅读笔记——Muffin: Testing Deep Learning Libraries via Neural Architecture Fuzzing

Muffin 论文 现有方法 CRADLE 和 LEMON&#xff0c;依赖模型推理阶段输出进行差分测试&#xff0c;但在训练阶段是不可行的&#xff0c;因为训练阶段直到最后才有固定输出&#xff0c;中间过程是不断变化的。API 库覆盖低&#xff0c;因为各个 API 都是在各种具体场景下使用。…...