【毕设绝技】基于 SpringCloud 的在线交易平台商城的设计与实现-数据库设计(三)

毕业设计是每个大学生的困扰,让毕设绝技带你走出低谷迎来希望!
基于 SpringCloud 的在线交易平台商城的设计与实现

一、数据库设计原则

  • 在系统中,数据库用来保存数据。数据库设计是整个系统的根基和起点,也是系统开发的重要环节,它的设计好坏直接关系到系统是否具有较高的可靠性和稳定性,重要性不言而喻。良好的数据库设计能够提高查询效率、保证数据准确、 减少数据冗余。本文设计的电商平台采用开源的关系型数据库 MySQL 作为数据库。
  • 通过分析,系统确定了如下数据库设计规则 :
    (1) 数据库表都有主键字段 ,且非空唯一,但主键的生成方式可以不同
    (2) 数据库表若有外键 ,外键字段不能为空
    (3) 若两张表之间关系复杂,采用第三张映射表来关联维护两张表之间的关系
    (4) 数据库表名和字段都采取英文字母加下划线的方式命名,英文字母全部小写
    (5) 添加一些必要的冗余字段,例如:创建时间、修改时间、备注等,方便后期维护拓展

二、数据库概念结构设计

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

三、数据库表设计

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

表名主键外键表说明
tb_categoryid商品分类表
tb_brandid商品品牌表
tb_category_brandbrand_id
category_id
brand_id
category_id
品牌分类中间表
tb_spubrand_id
cid1
cid2
cid3
商品表
tb_skuidspu_id商品 sku 表
tb_spec_groupidcategory_id商品规格组表
tb_spec_paramidcategory_id
group_id
商品规格参数表
tb_userid用户 id
tb_addressiduser_id用户地址表
tb_orderorder_iduser_id订单表
tb_order_detailidorder_id
sku_id
订单详情
tb_order_logisticsidorder_id订单物流
  • 表结构众多,在此不再列出全部数据库表结构 ,以分类表、商品表、用户表的表结构为例进行介绍:商品分类共分三级,一级与二级,二级与三级分类之间都是 1 对多关系。商品与分类表中的第三级分类关联:
字段名称字段类型允许为空说明
idbigint(20)自增编号编号
namevarchar(50)分类名
parent_idbigint(20)父类目 id
is_parenttinyint(1)是否是父类目
sorttinyint(1)顺序
create_timetimestamp创建时间
update_timetimestamp更新时间
  • 商品表用来存储商品,结构如下:

字段名称字段类型允许为空说明
idint(4)自增编号编号
namevarchar(50)商品名称
titlevarchar(50)商品标题
cid1bigint(20)商品分类 1 级分类
cid2bigint(20)商品分类 2 级分类
cid3bigint(20)商品分类 3 级分类
brand_idbigint(20)品牌 id
saleabletinyint(1)是否上架
create_timetimestamp添加时间
update_timetimestamp更新时间
  • 用户表结构如下:

字段名称字段类型允许为空说明
idint(4)自增编号编号
namevarchar(50)用户名
passwordvarchar(50)密码
phonevarchar(11)电话
create_timetimestamp添加时间
update_timetimestamp更新时间

四、总结

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

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

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

相关文章

Matlab|交直流混合配电网潮流计算(统一求解法)

目录 1 主要内容 算例模型 统一求解法迭代方程 算法流程图 2 部分代码 3 程序结果 4 下载链接 1 主要内容 该程序为matlab代码,采用统一求解法对交直流混合配电网进行潮流计算,统一迭代法又称统一求解法,其思路是将混联系统中的交流网…

C语言 | Leetcode C语言题解之第44题通配符匹配

题目&#xff1a; 题解&#xff1a; bool allStars(char* str, int left, int right) {for (int i left; i < right; i) {if (str[i] ! *) {return false;}}return true; } bool charMatch(char u, char v) { return u v || v ?; };bool isMatch(char* s, char* p) {in…

React Hooks(常用)笔记

一、useState&#xff08;保存组件状态&#xff09; 1、基本使用 import { useState } from react;function Example() {const [initialState, setInitialState] useState(default); } useState(保存组件状态) &#xff1a;React hooks是function组件(无状态组件) &#xf…

IDEA生成测试类

方法一 具体流程: 选中要生成的测试类------------>选择code选项------------>选择Generate选项---------->选择test选项---------->选择要生成的方法 第一步: 光标选中需要生成测试类的类 找到code选项 选中Generate选项 选中test选项 选中你要生成的测试…

简单的jmeter上传文件脚本

1、设置上传接口的headers的值 2、添加post请求

数据结构系列-二叉树之前序遍历

&#x1f308;个人主页&#xff1a;羽晨同学 &#x1f4ab;个人格言:“成为自己未来的主人~” 这篇文章&#xff0c;我们主要的内容是对二叉树当中的前历的算法进行讲解&#xff0c;二叉树中的算法所要求实现的是 从根到左子树再到右子树的遍历顺序&#xff0c;可能这样不太…

什么是用户体验(UX)文案,为什么它很重要?

网上购物如今比以往任何时候都更加相关。所以我们将以此为例说明什么是用户体验&#xff08;UX&#xff09;文案&#xff0c;以及为什么它很重要。 假设你去了一个在线商店。你需要执行一系列操作&#xff1a; 找到合适的部分选择你感兴趣的产品弄清楚它们是什么&#xff0c;…

2.6设计模式——Flyweight 享元模式(结构型)

意图 运用共享技术有效地支持大量细粒度的对象。 结构 其中 Flyweight描述一个接口&#xff0c;通过这个接口Flyweight可以接受并作用于外部状态。ConcreteFlyweight实现Flyweight接口&#xff0c;并作为内部状态&#xff08;如果有&#xff09;增加存储空间。ConcreteFlywe…

Unity AssetsBundle打包

为什么要使用AssetsBundle包 减少安装包的大小 默认情况下&#xff0c;unity编译打包是对项目下的Assets文件夹全部内容进行压缩打包 那么按照这个原理&#xff0c;你的Assets文件夹的大小将会影响到你最终打包出的安装包的大小&#xff0c;假如你现在正在制作一个游戏项目&…

没有文件服务器,头像存哪里合适

没有文件服务器&#xff0c;头像存哪里合适 视频在bilibili&#xff1a;没有文件服务器&#xff0c;头像存哪里合适 1. 背景 之前有同学私信我说&#xff0c;他的项目只是想存个头像&#xff0c;没有别的文件存储需求&#xff0c;不想去用什么Fastdfs之类的方案搭建文件服务…

【C++杂货铺】多态

目录 &#x1f308;前言&#x1f308; &#x1f4c1;多态的概念 &#x1f4c1; 多态的定义及实现 &#x1f4c2; 多态的构成条件 &#x1f4c2; 虚函数 &#x1f4c2; 虚函数重写 &#x1f4c2; C11 override 和 final &#x1f4c2; 重载&#xff0c;覆盖&#xff08;重写…

ARM学习(26)链接库的依赖查看

笔者今天来聊一下查看链接库的依赖。 通常情况下&#xff0c;运行一个可执行文件的时候&#xff0c;可能会出现找不到依赖库的情况&#xff0c;比如图下这种情况&#xff0c;可以看到是缺少了license.dll或者libtest.so&#xff0c;所以无法运行。怎么知道它到底缺少什么dll呢&…

HarmonyOS-Next开源三方库 MPChart:打造出色的图表体验

点击下载源码https://download.csdn.net/download/liuhaikang/89228765 简介 随着移动应用的不断发展&#xff0c;数据可视化成为提高用户体验和数据交流的重要手段之一。在 OpenAtom OpenHarmony&#xff08;简称“OpenHarmony”&#xff09;应用开发中&#xff0c;一个强大而…

线性代数:抽象向量空间

一、说明 有些函数系列极具线性代数的向量特征。这里谈及多项式构成函数的线性代数意义。问题是这个主题能展开多少内涵&#xff1f;请看本文的论述。 二、线性空间和向量 让我先问你一个简单的问题。什么是向量&#xff1f;为了方便起见&#xff0c;二维箭头从根本上说是平…

OpenHarmony实战开发—进程间通讯

版本&#xff1a;v3.2 Beta5 进程模型 OpenHarmony的进程模型如下图所示&#xff1a; 应用中&#xff08;同一包名&#xff09;的所有UIAbility、ServiceExtensionAbility、DataShareExtensionAbility运行在同一个独立进程中&#xff0c;即图中绿色部分的“Main Process”。…

python自定义交叉熵损失,再和pytorch api对比

背景 我们知道&#xff0c;交叉熵本质上是两个概率分布之间差异的度量&#xff0c;公式如下 其中概率分布P是基准&#xff0c;我们知道H(P,Q)>0&#xff0c;那么H(P,Q)越小&#xff0c;说明Q约接近P。 损失函数本质上也是为了度量模型和完美模型的差异&#xff0c;因此可以…

网御星云防火墙策略配置

网御星云防火墙配置 1. 初始设定2. 网络配置3. 安全规则和策略4. 监控和维护零基础入门学习路线视频配套资料&国内外网安书籍、文档网络安全面试题 1. 初始设定 接入网络&#xff1a; 在开始配置之前&#xff0c;确保你的网御星云防火墙正确连接到网络。这通常涉及将WAN接…

07 流量回放实现自动化回归测试

在本模块的前四讲里&#xff0c;我向你介绍了可以直接落地的、能够支撑百万并发的读服务的系统架构&#xff0c;包含懒加载缓存、全量缓存&#xff0c;以及数据同步等方案的技术细节。 基于上述方案及细节&#xff0c;你可以直接对你所负责的读服务进行架构升级&#xff0c;将…

【Redis 开发】一人一单,超卖问题(悲观锁,乐观锁,分布式锁)

锁 悲观锁乐观锁第一种&#xff1a;版本号法第二种&#xff1a;CAS法实现乐观锁 悲观锁与乐观锁的比较 一人一单分布式锁Redis实现分布式锁 悲观锁 认为线程问题一定会发生&#xff0c;因此在操作数据库之前先获取锁&#xff0c;确保线程串行执行&#xff0c;例如Synchronized…

51单片机使用两个按钮控制LED灯不同频率的闪烁

#include <reg52.h>sbit button1 P1^1; // 间隔2秒的按钮 sbit button2 P1^5; // 间隔0.6秒的按钮sbit led P1^3;unsigned int cnt1 0; // 设置LED1灯的定时器溢出次数 unsigned int cnt2 0; // 设置LED2灯的定时器溢出次数 unsigned int flg1 0; // 模式1的标识值…