基于 SpringCloud 的在线交易平台乐优商城的设计与实现(四)

        第 4 章 数据库设计

4.1  数据库设计原则

4.2.数据库概念结构设计

4.3  数据库表设计

4.4.本章小结


前面内容请移步

基于 SpringCloud 的在线交易平台乐优商城的设计与实现(三)

相关免费源码资源

乐优商城

 4  数据库设计

4.1  数据库设计原则

        在系统中,数据库用来保存数据。数据库设计是整个系统的根基和起点, 也是系统开发的重要环节, 它的设计好坏直接关系到系统是否具有较高的可 靠性和稳定性, 重要性不言而喻。良好的数据库设计能够提高查询效率、保 证数据准确、  减少数据冗余。本文设计的电商平台采用开源的关系型数据库 MySQL 作为数据库。通过分析,系统确定了如下数据库设计规则 :

(1)  数据库表都有主键字段 ,且非空唯一,但主键的生成方式可以不同

(2)  数据库表若有外键 ,外键字段不能为空

(3)  若两张表之间关系复杂, 采用第三张映射表来关联维护两张表之间的关 系

(4)  数据库表名和字段都采取英文字母加下划线的方式命名 英文字母全部 小写

(5)  添加一些必要的冗余字段,例如:创建时间、修改时间、备注等,方便 后期维护拓展

4.2.数据库概念结构设计

        数据库概念结构设计是把需求分析得出的需求抽象成概念模型的过程。 通过系统的需求分析需要确定数据库中需要哪些实体、这些实体的属性和实 体之间的联系。实体之间的联系包括一对一、一对多和多对多。E-R 图能够 反映实体与实体之间的联系, 通过 3.3  小节的系统功能性需求分析我们知道 系统必然存在最重要的 2  个实体,分别是商家和用户。该电商平台的 E-R图

 4-2  系统实体 ER 

4.3  数据库表设计

数据库物理结构设计主要工作为设计数据库表结构, 本文设计的电商平台数

据库实体表设计总表如表 4-1 所示:

 4-1 表总体结构设计

表名

主键

外键

表说明

tb_category

id

商品分类表

tb_brand

id

商品品牌表

tb_category_brand

brand_id

category_id

brand_id

category_id

品牌分类中间表

tb_spu

id

brand_id

cid1

cid2

cid3

商品表

tb_sku

id

spu_id

商品 sku 

tb_spec_group

id

category_id

商品规格组表

tb_spec_param

id

category_id

group_id

商品规格参数表

tb_user

id

用户 id

tb_address

id

user  id

_

用户地址表

tb_order

order_id

user  id

订单表

tb_order_detail

id

order_id

sku_id

订单详情

tb_order_logistics

id

order_id

订单物流

        由于篇幅原因且表结构众多, 在此不再列出全部数据库表结构 ,以分类表、

商品表、用户表的表结构为例进行介绍:

        商品分类共分三级, 一级与二级, 二级与三级分类之间都是 1 对多关系。商

品与分类表中的第三级分类关联:

 4-2 商品分类结构设计

字段名称

字段类型

允许为空

说明

id

bigint(20)

自增编号

编号

name

varchar(50)

分类名

parent_id

bigint(20)

父类目 id

is_parent

tinyint(1)

是否是父类目

sort

tinyint(1)

顺序

create_time

timestamp

创建时间

update_time

timestamp

更新时间

        商品表用来存储商品,结构如下:

 4-3  商品表结构

字段名称

字段类型

允许为空

说明

id

int(4)

自增编号

编号

name

varchar(50)

商品名称

title

varchar(50)

商品标题

cid1

bigint(20)

商品分类 1 级分类

cid2

bigint(20)

商品分类 2 级分类

cid3

bigint(20)

商品分类 3 级分类

brand_id

bigint(20)

品牌 id

saleable

tinyint(1)

是否上架

create_time

timestamp

添加时间

update_time

timestamp

更新时间

        用户表结构如下:

 4-4  用户表结构

字段名称

字段类型

允许为空

说明

id

int(4)

自增编号

编号

username

varchar(50)

用户名

password

varchar(50)

密码

phone

varchar(11)

电话

create_time

timestamp

添加时间

update_time

timestamp

更新时间

4.4.本章小结

        本章主要介绍了系统概要设计包 括系统架构设计和系统数据库设计。 其中, 系统架构设计对该电商平台整体架构进行设计, 系统数据库设计对数据库 设计原则、数据库概念结构设计 、数据库物理结构设计进行了阐述 。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/315205.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

消息服务应用1——java项目使用websocket

在当前微服务项目中,由于业务模块众多,消息服务的使用场景变得异常活跃。而WebSocket由于其自身的可靠性强,实时性好,带宽占用更小的优势,在实时通讯应用场景中独占鳌头,加上HTML5标准的普及流行&#xff0…

记录些AI Agents设计模式和NL2SQL知识

吴恩达分享的四种 自我反思(Reflection):可以自我修正;使用工具(Tool Use):链接其他系统去做一些事情,比如把电脑里面的未归档文件做好归档;规划(Planning&a…

2024年五一联赛数学建模思路+论文+代码+结果

一、竞赛时间 2024年5月1日10:00至2024年5月4日12:00(北京时间,24时计时法)。 二、报名时间 2024年4月7日00:00至2024年4月30日24:00(北京时间,24时计时法)。(如受突发事情影响而导致系统注册报名推后,将另行通知) …

应急行业的智能安全帽(高端)

前面介绍了低端、中端安全帽,接着再讲讲高端安全帽。做高端安全帽的企业非常少,估计一只手都数的出来。确实也和智能安全帽这个领域体量有关系,并且他有一个新的“劲敌”——智能眼镜从其他领域瓜分原属于他的市场,这些都是题外话…

【从后端日志文件中过滤出sql语句】

从后端日志文件中过滤出sql语句 why?思路日志文件的格式 结果 why? 为什么会有这种需求?,mysql数据不小心被删了完全可以从备份数据恢复,或者从binlog中恢复,但是如果前面这两种方法没办法处理(没有备份数据库文件、…

分类神经网络2:ResNet模型复现

目录 ResNet网络架构 ResNet部分实现代码 ResNet网络架构 论文原址:https://arxiv.org/pdf/1512.03385.pdf 残差神经网络(ResNet)是由微软研究院的何恺明、张祥雨、任少卿、孙剑等人提出的,通过引入残差学习解决了深度网络训练中的退化问题&#xff…

解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域

解决 Tomcat 跨域问题 - Tomcat 配置静态文件和 Java Web 服务(Spring MVC Springboot)同时允许跨域 Tomcat 配置允许跨域Web 项目配置允许跨域Tomcat 同时允许静态文件和 Web 服务跨域 偶尔遇到一个 Tomcat 部署项目跨域问题,因为已经处理过…

Odoo:全球排名第一的免费开源PLM管理系统介绍

概述 利用开源智造OdooPLM产品生命周期管理应用,重塑创新 实现产品生命周期管理数字化,高效定义、开发、交付和管理创新的可持续产品,拥抱数字化供应链。 通过开源智造基于Odoo开源技术平台打造数字化的产品生命周期管理(PLM&am…

基于OpenMV 双轴机械臂 机器学习

文章目录 一、项目简要二、目标追踪1. 色块识别与最大色块筛选2. PID位置闭环 三、机器学习1. Device12. Device2 四、效果演示 一、项目简要 两套二维云台设备,Device1通过摄像头捕捉目标物块点位进行实时追踪,再将自身点位传到Device2,Dev…

开发 Chrome 浏览器插件入门

前言 简介 Chrome 插件是扩展 Chrome 浏览器的功能的软件程序。它们可以执行各种任务,例如阻止广告、增强隐私、添加新功能等等。 要开始编写 Chrome 插件,你需要掌握以下: 1.JavaScript语言 2.html 3.css 4.会使用chrome扩展开发手册…

opencv绘制线段------c++

绘制线段 bool opencvTool::drawLines(std::string image_p, std::vector<cv::Point> points) {cv::Mat ima cv::imread(image_p.c_str()); // 读取图像&#xff0c;替换为你的图片路径 cv::Scalar red cv::Scalar(0, 0, 255); // Red color int thickness 2;// 遍…

微信小程序开发:2.小程序组件

常用的视图容器类组件 View 普通的视图区域类似于div常用来进行布局效果 scroll-view 可以滚动的视图&#xff0c;常用来进行滚动列表区域 swiper and swiper-item 轮播图的容器组件和轮播图的item项目组件 View组件的基本使用 案例1 <view class"container"&…

Jrebel无法启动项目

使用Jrebel的debug模式无法启动项目&#xff0c;而使用Jrebel的普通模式可以。 debug模式输出日志如下&#xff0c;只有jrebel&#xff0c;没有出现系统启动日志&#xff0c;开始以为是断点&#xff0c;禁用也无法正常启动。而其他项目则jrebel 的debug可以 解决办法&#xff…

【算法刷题 | 贪心算法02】4.24(摆动序列)

文章目录 3.摆动序列3.1题目3.2解法&#xff1a;贪心3.2.1贪心思路3.2.2代码实现 3.摆动序列 3.1题目 如果连续数字之间的差严格地在正数和负数之间交替&#xff0c;则数字序列称为 摆动序列 。 第一个差&#xff08;如果存在的话&#xff09;可能是正数或负数。仅有一个元素…

【综述】DSP处理器芯片

文章目录 TI DSP C2000系列 TMS320F28003X 典型应用 开发工具链 参考资料 TI DSP TI C2000系列 控制领域 TI C5000系列 通信领域 TI C6000系列 图像领域 C2000系列 第三代集成了C28浮点DSP内核&#xff0c;采用了65nm工艺&#xff08;上一代180nm&#xff09; 第四代正在…

uniapp制作安卓原生插件踩坑

1.uniapp和Android工程互相引用讲解 uniapp原生Android插件开发入门教程 &#xff08;最新版&#xff09;_uniapp android 插件开发-CSDN博客 2.uniapp引用原生aar目录结构 详细尝试步骤1完成后生成的aar使用&#xff0c;需要新建nativeplugins然后丢进去 3.package.json示例…

数据聚类:Mean-Shift和EM算法

目录 1. 高斯混合分布2. Mean-Shift算法3. EM算法4. 数据聚类5. 源码地址 1. 高斯混合分布 在高斯混合分布中&#xff0c;我们假设数据是由多个高斯分布组合而成的。每个高斯分布被称为一个“成分”&#xff08;component&#xff09;&#xff0c;这些成分通过加权和的方式来构…

Bert基础(十八)--Bert实战:NER命名实体识别

1、命名实体识别介绍 1.1 简介 命名实体识别&#xff08;NER&#xff09;是自然语言处理&#xff08;NLP&#xff09;中的一项关键技术&#xff0c;它的目标是从文本中识别出具有特定意义或指代性强的实体&#xff0c;并对这些实体进行分类。这些实体通常包括人名、地名、组织…

小龙虾优化算法(Crayfish Optimization Algorithm,COA)

小龙虾优化算法&#xff08;Crayfish Optimization Algorithm&#xff0c;COA&#xff09; 前言一、小龙虾优化算法的实现1.初始化阶段2.定义温度和小龙虾的觅食量3.避暑阶段&#xff08;探索阶段&#xff09;4.竞争阶段&#xff08;开发阶段&#xff09;5.觅食阶段&#xff08…

高速风筒电源IC辉芒微FT8440E /FT8440A

深圳市三佛科技有限公司分享相关资料&#xff0c;高精度、高效率、低成本离线式功率开关 FT8440x是-款高性能、高精度、低成本的非隔离PWM功率开关。它包含一个专门]的电流模PWM控制器和一个高压功率开关管。内置的误差放大器经过优化保证优越的动态响应。高精度的内部分压电阻…