当前位置: 首页 > 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…...

Unity安卓打包实战指南:从环境配置到APK生成全链路排错

1. 这不是“入门教程”&#xff0c;而是一份写给真实开发现场的生存指南你打开Unity&#xff0c;新建一个3D项目&#xff0c;拖进一个Cube&#xff0c;点击Play——它动了。你松了口气&#xff0c;觉得“Unity好像也没那么难”。但当你把APK打包发给测试同事&#xff0c;对方回…...

机器学习与深度学习在地球物理勘探中的应用:基于电阻率数据预测极化率模型

1. 项目概述与核心价值在花岗岩这类地质条件复杂的地区搞勘探&#xff0c;最头疼的就是地下情况“看不清”。传统的电阻率&#xff08;ERT&#xff09;和激发极化&#xff08;IP&#xff09;联合反演&#xff0c;就像用一把刻度模糊的尺子去量一块表面坑洼不平的石头——面对高…...

D3KeyHelper:暗黑3玩家的智能按键助手,告别重复操作疲劳

D3KeyHelper&#xff1a;暗黑3玩家的智能按键助手&#xff0c;告别重复操作疲劳 【免费下载链接】D3keyHelper D3KeyHelper是一个有图形界面&#xff0c;可自定义配置的暗黑3鼠标宏工具。 项目地址: https://gitcode.com/gh_mirrors/d3/D3keyHelper 你是否曾在《暗黑破坏…...

BLE四大广播模式详解:可连接/不可连接/定向/周期广播

一、前言在低功耗蓝牙&#xff08;BLE&#xff09;开发中&#xff0c;广播&#xff08;Advertising&#xff09;是设备发现、连接建立、数据广播、设备重连的核心基石&#xff0c;所有BLE交互流程均始于广播报文的收发。不同于传统经典蓝牙&#xff0c;BLE所有广播行为标准化、…...

雪球网md5__1038参数逆向解析与Node.js复现

1. 这不是“破解”&#xff0c;而是对前端加密逻辑的常规逆向还原你打开雪球网任意一只股票详情页&#xff0c;F12 打开开发者工具&#xff0c;切到 Network 面板&#xff0c;刷新页面——很快就能在 XHR 请求里捕获到类似这样的接口&#xff1a;https://xueqiu.com/stock/cube…...

QMCDecode终极指南:3步解锁QQ音乐加密格式,实现跨平台音乐自由

QMCDecode终极指南&#xff1a;3步解锁QQ音乐加密格式&#xff0c;实现跨平台音乐自由 【免费下载链接】QMCDecode QQ音乐QMC格式转换为普通格式(qmcflac转flac&#xff0c;qmc0,qmc3转mp3, mflac,mflac0等转flac)&#xff0c;仅支持macOS&#xff0c;可自动识别到QQ音乐下载目…...

轻量化部署,异地机房快速接入,多机房管理不用再大动干戈

随着业务拓展&#xff0c;不少企业、单位陆续建起异地分部机房、多区域节点机房。传统资产管理系统部署复杂、对接困难&#xff0c;异地机房接入成本高、周期长&#xff0c;改造繁琐&#xff0c;让很多运维团队望而却步&#xff0c;只能继续沿用分散人工管理&#xff0c;资产混…...

神经网络与深度学习 第3周课程总结

深度学习视觉应用课程总结 一、常用计算机视觉数据集数据集名称发布方/年份规模图像规格类别数主要用途核心特点MNIST美国国家标准与技术研究院60k训练10k测试2828灰度图10类(0-9手写数字)入门级图像分类最经典的手写数字识别基准数据集Fashion-MNISTZalando(2017)60k训练10k测…...

通过curl命令快速测试Taotoken大模型API的连通性与返回格式

&#x1f680; 告别海外账号与网络限制&#xff01;稳定直连全球优质大模型&#xff0c;限时半价接入中。 &#x1f449; 点击领取海量免费额度 通过curl命令快速测试Taotoken大模型API的连通性与返回格式 在集成大模型能力到应用时&#xff0c;开发者通常需要一种快速、轻量的…...

告别鼠标点击,微博图片批量下载的轻松方案

告别鼠标点击&#xff0c;微博图片批量下载的轻松方案 【免费下载链接】weiboPicDownloader Download weibo images without logging-in 项目地址: https://gitcode.com/gh_mirrors/we/weiboPicDownloader 还记得那个周末的下午吗&#xff1f;你喜欢的博主发布了九宫格美…...