【毕设绝技】基于 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.mfbz.cn/a/576214.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

静态链接lib库使用

lib库实际上分为两种,一种是静态链接lib库或者叫做静态lib库,另一种叫做动态链接库dll库的lib导入库或称为lib导入库。这两个库是不一样的,很多人都分不清楚,很容易混淆。 第一种是静态lib,包含了所有的代码实现的&am…

颠覆传统:机器人与AI大模型的结合,开启智能自动化的黄金时代!

引言:机器人技术与大模型的结合趋势 随着科技的迅速发展,机器人技术与大模型的结合已经成为必然趋势。这种结合不仅仅是技术的简单叠加,而是一种深层次的互补与融合,为机器人技术的应用开辟了新的可能性。大模型,能够…

02_c/c++开源库ZeroMQ

1.安装 C库 libzmq sudo apt install libzmq3-dev 实例: https://zeromq.org/get-started/?languagec&librarylibzmq# 编译依赖: pkg-config --cflags --libs libzmq or cat /usr/lib/x86_64-linux-gnu/pkgconfig/libzmq.pc -isystem /usr/include/mit-krb5 -I/usr/in…

[Android]引导页

使用Kotlin Jetpack Compose创建一个左右滑动的引导页, 效果如图. 1.添加依赖项 androidx.compose.ui最新版本查询:https://maven.google.com/web/index.html com.google.accompanist:accompanist-pager最新版本查询:https://central.sonatype.com/ 确保在 build.gradle (M…

无人机+集群组网:机载自组网电台技术详解

无人机与集群组网的结合为现代通信带来了独特的优势。在集群组网中,每个节点(例如无人机)都兼具路由器和主机的功能,它们不仅可以运行各种面向用户的应用程序,还可以执行路由协议,根据路由策略和路由表完成…

基于SpringBoot + Vue实现的校园(通知、投票)管理系统设计与实现+毕业论文(12000字)+答辩PPT+指导搭建视频

目录 项目介绍 运行环境 技术栈 效果展示 论文展示 总结 项目介绍 本系统包含管理员、用户、院校管理员三个角色。 管理员角色:用户管理、院校管理、单位类别管理、院校管理员管理、单位管理、通知推送管理、投票信息管理、通知回复管理等。 用户角色&#…

2款README.md生成器

🏷️ readme-md-generator 确保你已经安装了npx (npx从npm 5.2.0开始默认安装) 执行命令 只需在项目的根目录下运行以下命令并回答问题: npx readme-md-generator 在项目根目录执行上面bash命令,结果: # npx readme-md-generator D:\vinc…

上新啦!讯飞首个支持长文本、长图文、长语音的大模型发布

IDC预测,全球数据信息产生和复制量将在2025年达到175ZB(1ZB相当于1万亿GB)。假设每个人的大脑功能记忆容量约为1.25TB,那么需要超过280亿个人脑来处理这些信息,相当于全球人口的4倍。 4月26日,讯飞星火V3.…

安卓NetworkStatsManager使用及demo

目录 一、TrafficStats类简介二、demo示例 一、TrafficStats类简介 TrafficStats Android API 8提供了android.net.TrafficStats类。 通过此类能获取设备重启以来网络信息,部分函数如下所示: static long getMobileRxBytes() //获取通过移动数据网络…

[C++]STL---unordered_set与unordered_map的模拟实现

目录 前言 哈希桶的改造 哈希桶的初步改造 迭代器的模拟实现 operator() 类互相typedef时的前置声明 友元声明 迭代器的出口 插入Insert() 查找Find() 哈希表的最终改造 unordered_set的模拟实现 unordered_map的模拟实现 前言 unordered_set与set的区…

嵌入式系统中的实时操作系统(RTOS)深入应用与优化

引言 实时操作系统(RTOS)在嵌入式系统中扮演着至关重要的角色,特别是在需要快速响应和高度可靠性的应用中。 我将探讨如何在STM32单片机上实现RTOS,包括任务管理、内存管理以及中断处理,以提高系统的效率和响应速度。…

C++:const成员和取地址操作符

目录 一、const成员 二、取地址及const取地址操作符重载 一、const成员 将const修饰的“成员函数”称之为const成员函数,const修饰类成员函数,实际修饰该成员函数 隐含的this指针,表明在该成员函数中不能对类的任何成员进行修改。 注&…

JavaScript+B/S架构云LIS系统源码C# 6.0+MVC+SQLSugar医院版检验科云LIS系统源码 可提供演示

JavaScriptB/S架构云LIS系统源码MVCSQLSugar医院版检验科云LIS系统源码 可提供演示随着医疗技术的不断发展,医疗机构对于信息化、智能化的需求也越来越高。特别是对于检验科这样的核心科室,如何提高工作效率、降低误差率、提高数据安全性成为了亟待解决的…

2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试

题库来源:安全生产模拟考试一点通公众号小程序 2024年【安全生产监管人员】考试技巧及安全生产监管人员模拟考试,包含安全生产监管人员考试技巧答案和解析及安全生产监管人员模拟考试练习。安全生产模拟考试一点通结合国家安全生产监管人员考试最新大纲…

Type-C接口取电IC6500:优势与应用场景的深度解析

Type-C接口PD芯片取电IC的优势 随着科技的不断进步和移动设备在日常生活中的广泛应用,充电技术的革新变得愈发重要。Type-C接口PD芯片取电IC作为现代充电技术的关键组件,其优势日益凸显,为移动设备充电带来了革命性的改变。本文将深入探讨Ty…

(三)登录和注册(handle_auto.go)

登录和注册(handle_auto.go) 文章目录 登录和注册(handle_auto.go)一、所需要的结构体信息二、注册三、登录四、退出 一、所需要的结构体信息 type UserAuth struct{}type LoginReq struct {Username string json:"username" binding:"required"Password …

【汇编语言】直接定址表

【汇编语言】直接定址表 文章目录 【汇编语言】直接定址表前言一、移位指令移位指令过程逻辑移位指令shl 和 shr 二、操作显存数据显示的原理显示缓冲区的结构显示信息的一种“直接”方式 三、描述内存单元的标号关于标号去了冒号的数据标号数据标号同时描述内存地址和单元长度…

前端JS必用工具【js-tool-big-box】,防抖和节流的方法调用学习

这一小节,我们针对前端工具包(npm)js-tool-big-box的使用做一些讲解,主要是防抖和节流方面的。 目录 前言 1 安装和引入 2 防抖的调用学习 3 节流的调用学习 4 使用方法总结 前言 在前端项目中,经常涉及到防抖…

CNAS软件测评报告收费标准

随着信息技术的快速发展,软件测评在保障软件质量、提升用户体验等方面扮演着越来越重要的角色。CNAS(中国合格评定国家认可委员会)作为国内权威的认可机构,其软件测评报告收费标准受到了广泛关注。本文旨在解析CNAS软件测评报告的…

[华为OD]幼儿园两个班的小朋友 100

题目: 幼儿园两个班的小朋友在排队时混在了一起,每位小朋友都知道自己是否与前面一位小朋友 是否同班,请你帮忙把同班的小朋友找出来。 小朋友的编号为整数,与前一位小朋友同班用 Y 表示,不同班用 N 表示。 输入描…