前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL周内训参照1、ER实体关系图与数据库模型图绘制

MySQL周内训参照1、ER实体关系图与数据库模型图绘制

作者头像
红目香薰
发布于 2024-06-12 00:14:58
发布于 2024-06-12 00:14:58
4410
举报
文章被收录于专栏:CSDNToQQCodeCSDNToQQCode

题目要求详情地址:04-MySQL比赛内容与要求细则

编号

人员

题目

总分数

题干

提交内容

得分标准

1

产品经理

绘制ER图

10

使用工具统一版本viso2013 要求创建的实体有: 1、用户表(user)、用户钱包表(user_wallet)(与user是1对1关系)、用户钱包交易日志表(user_wallet_log)(与user是1对多关系)。 2、商品类别表(product_type)(与product是1对多关系)、商品表(product)。 3、订单表(order)(与product是1对多关系)、订单详情表(order_info)。 4、需要独立完成实体属性的分析、外键关系连接、表之间关联关系说明。

ER图图片

1、共计7个实体,用户系列1分,商品系列1分,订单系列1分(共3分)。 2、保障所有主外键属性基础连接,所有表一条连接3分,2条连接2分,3条连接1分,3条连接以上不得分(共3分)。 3、合理属性添加,每张表需要有必备的3条以上基础属性,合理即可,有任何一个无用或不合理属性扣1分,抠完为止。(共3分)。 4、标明一对一或一对多关系合理即得分,错误1项不得分(1分)。

2

产品经理

数据库模型图

10

使用工具统一版本viso2013 需要根据绘制的ER图来完成数据库模型图,要求有: 1、表的属性与ER图表中显示属性要求一致。 2、表之间连线主外键关系明确。 3、连接线标明一对一,一对多关系。 4、连接线连接合理,且没有堆叠情况。

数据模型图图片

1、共计7个实体的属性与ER图一致,少一个扣1分,多一个扣1分(共3分)。 2、表之间的主外键关有明确的标识,少一处扣1分,多一个扣1分(共3分)。 3、一对一,一对多关系明确,错误一处扣1分(共2分)。 4、连接线连接合理,无堆叠情况(2分)。

ER图是什么?

ER 图即实体-关系图(Entity Relationship Diagram)。

它是用来描述现实世界中实体及其相互关系的一种概念模型工具

在 ER 图中,用【矩形】表示实体,【椭圆】表示实体的属性,【菱形】表示实体之间的关系,并通过连线(直线)来表明它们之间的关联。

ER 图有助于清晰地展现数据库中所涉及的各种对象及其之间的联系,对于数据库设计等具有重要意义,可以帮助设计人员更好地理解业务需求和数据结构,从而更合理地规划数据库的结构和内容。

ER图绘制工具

PowerDesigner:功能强大,支持多种模型的设计。 Visio:微软的绘图工具,广泛应用于各种图表绘制,包括 ER 图。 ERwin:专门用于数据库设计和 ER 图绘制的工具。 MySQL Workbench:针对 MySQL 数据库的工具,也可绘制 ER 图。 DbSchema:不仅能绘制 ER 图,还具有数据库管理等功能。

这里我们采用【Visio】来绘制我们的ER图。

visio2013安装以及安装问题说明-ER图与数据库模型图绘制示例

visio2013安装以及安装问题说明-ER图与数据库模型图绘制示例

Chen's 数据库表示法——ER图绘制使用形状

在设计中可以修改纸张方向和纸张大小。

Crow's Foot数据库表示法——数据库模型图使用形状

这里需要注意外键需要自己添加一下,连线的时候注意美观。

关系表示——显示多重性

这里可以使用文本自己写,也可以在连接线上点击鼠标右键,选择显示多重性来修改。

属性分析

1、用户表(user)、用户钱包表(user_wallet)(与user是1对1关系)、用户钱包交易日志表(user_wallet_log)(与user是1对多关系)。

user:用户表通常包含用户的基本信息,例如用户ID(主键)、用户名、密码(通常加密存储)、邮箱、手机号、创建时间等。


属性设计: user_id: 用户ID(主键,自增) username: 用户名(唯一) password: 密码(加密存储) email: 邮箱(唯一) phone: 手机号(唯一) created_at: 创建时间


user_wallet:用户钱包表与用户表是1对1关系,所以每个用户只有一个钱包。该表通常包含钱包ID(主键)、所属用户ID(外键)、钱包余额等属性。


属性设计: wallet_id: 钱包ID(主键,自增) user_id: 所属用户ID(外键,关联user表的user_id) balance: 钱包余额 created_at: 创建时间


user_wallet_log:用户钱包交易日志表记录钱包的每笔交易,与用户表是1对多关系。该表通常包含日志ID(主键)、所属用户ID(外键)、交易类型(充值、消费等)、交易金额、交易时间等属性。


属性设计: log_id: 日志ID(主键,自增) user_id: 所属用户ID(外键,关联user表的user_id) transaction_type: 交易类型(例如:'充值', '消费'等) amount: 交易金额(可正可负,表示充值或消费) transaction_time: 交易时间

2、商品类别表(product_type)(与product是1对多关系)、商品表(product)。

product_type:商品类别表存储商品的分类信息,例如类别ID(主键)、类别名称、父类别ID(如果存在层级关系)、描述等。


属性设计: type_id: 类别ID(主键,自增) type_name: 类别名称 description: 类别描述 created_at: 创建时间


product:商品表存储具体的商品信息,包括商品ID(主键)、商品名称、价格、库存、所属类别ID(外键,关联product_type表的type_id)等。


属性设计: product_id: 商品ID(主键,自增) product_name: 商品名称 price: 商品价格 stock: 商品库存 type_id: 所属类别ID(外键,关联product_type表的type_id) created_at: 创建时间

3、订单表(order)(与product是1对多关系)、订单详情表(order_info)。

order:订单表存储订单的基本信息,如订单ID(主键)、用户ID(外键,关联用户表)、订单状态、下单时间、支付状态、支付时间等。


属性设计: order_id: 订单ID(主键,自增) user_id: 用户ID(外键,关联用户表) order_status: 订单状态(例如:待支付、已支付、已发货、已完成等) order_time: 下单时间 payment_status: 支付状态(例如:未支付、已支付) payment_time: 支付时间 total_price: 订单总价


order_info:订单详情表存储订单中每个商品的具体信息,如订单详情ID(主键)、订单ID(外键,关联订单表)、商品ID(外键,关联商品表)、购买数量、单价等。


属性设计: order_info_id: 订单详情ID(主键,自增) order_id: 订单ID(外键,关联订单表) product_id: 商品ID(外键,关联商品表) quantity: 购买数量 unit_price: 单价

ER图与数据库模型图绘制——快PM11点了,我就描述一下不画了。

实体

实体

  1. user
    • user_id (主键)
    • username (唯一)
    • password
    • email (唯一)
    • phone (唯一)
    • created_at
  2. user_wallet
    • wallet_id (主键)
    • user_id (外键,关联user的user_id)
    • balance
    • created_at
  3. user_wallet_log
    • log_id (主键)
    • user_id (外键,关联user的user_id)
    • transaction_type
    • amount
    • transaction_time
  4. product_type
    • type_id (主键)
    • type_name
    • description
    • created_at
  5. product
    • product_id (主键)
    • product_name
    • price
    • stock
    • type_id (外键,关联product_type的type_id)
    • created_at
  6. order
    • order_id (主键)
    • user_id (外键,关联user的user_id)
    • order_status
    • order_time
    • payment_status
    • payment_time
    • total_price
  7. order_info
    • order_info_id (主键)
    • order_id (外键,关联order的order_id)
    • product_id (外键,关联product的product_id)
    • quantity
    • unit_price
关系

  1. user 和 user_wallet 之间是一对一的关系,因为一个用户可以有一个钱包。
  2. user 和 user_wallet_log 之间也是一对多的关系,因为一个用户可以有多个钱包交易日志。
  3. product_type 和自身之间存在一对多的关系,用于表示产品类型的层次结构(例如,一个产品类型可以有子类型)。
  4. product 和 product_type 之间是一对一的关系,因为一个产品只能属于一个产品类型。
  5. user 和 order 之间是一对多的关系,因为一个用户可以有多个订单。
  6. order 和 order_info 之间是一对多的关系,因为一个订单可以包含多个产品(每个产品都有自己的购买数量和单价)。
  7. product 和 order_info 之间也是一对多的关系,因为一个产品可以在多个订单中被购买。
Navicat数据库的ER图
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-06-11,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
数据库设计 ER图
ER图,简单来说,E是实体,实体有一组属性;R是关系。找到系统中的实体以及实体关系就可以绘制出ER图了。
全栈程序员站长
2022/08/31
3.9K0
数据库设计 ER图
【愚公系列】2022年01月 Mysql数据库-表结构和关系的设计
中间表是针对多对多关系的。就比如做公交查询系统,里面有两个表,分别是车站表t_busstation、线路表t_road,根据常识,一个站有多个线路经过,而每个线路又有多个车站,怎么才能将两个表联系起来呢,如果是一对一,一对多,我们一个表, 两个表就可以将他们实现了。但是多对多呢,这样我们就必须借助中间表用来连接两个表。一般中间表只有一个自增主键+两个表的主键。中间表是没有属性的因为它不是一个基本表。
愚公搬代码
2022/01/28
7770
【愚公系列】2022年01月 Mysql数据库-表结构和关系的设计
分析与设计数据库模型的简单过程
近期在做一个业务系统的分析和数据模型设计,工作这几年也做过好几个项目的数据库模型的设计,期间也算是积累了一定的经验吧,这次有机会就写写我的数据库模型设计过程与方法。
深蓝studyzy
2022/06/16
5840
分析与设计数据库模型的简单过程
面试官:请讲一下MyBatis是如何关联关系?
在关系型数据库中,多表之间存在着三种关联关系,分别为一对一、一对多和多对多,如下图所示:
千羽
2021/12/29
7430
面试官:请讲一下MyBatis是如何关联关系?
Java EE之SSM框架整合开发 -- (7) MyBatis映射器
2.在MyBatis中针对不同的数据库软件,<insert>元素如何将主键回填?
浩Coding
2019/07/03
2.5K0
数据库_mysql多表操作
多表操作 实际开发中,一个项目通常需要很多张表才能完成。例如:一个商城项目就需要分类表(category)、商品表(products)、订单表(orders)等多张表。且这些表的数据之间存在一定的关系
Java学习
2018/04/13
2.3K0
数据库_mysql多表操作
数据库 | 看这一篇就够了!最全MySQL数据库知识框架!
作为一名程序员,每天和各种各样的“数据库”打交道,已经成为我们的日常。当然,立志成为一名超级架构师的我,肯定要精通这项技能。咳咳!不过饭还是要一口一口吃的,“数据库”这个内容实在太大了,我们今天还是以关系型数据库的代表“MySQL说起,现如今,MySQL已经变得无处不在,从初创公司的小型项目到大型企业的核心系统,都在使用。
kfaino
2023/11/03
7530
数据库 | 看这一篇就够了!最全MySQL数据库知识框架!
数据库基础,看完这篇就够了!
对于测试同学来说,除了知道测试基础知识外,还需要掌握一些测试基本技能,主要有Linux、数据库、计算机网络等,在此之前我们已经讨论过Linux基础知识以及在实际工作中的应用,可参考往期文章「学会Linux,看完这篇就行了!」。
测试蔡坨坨
2022/12/21
3K0
数据库基础,看完这篇就够了!
「数据架构」什么是实体关系图(ERD)?
数据库绝对是软件系统不可分割的一部分。在数据库工程中充分利用ER关系图,可以保证在数据库创建、管理和维护中产生高质量的数据库设计。ER模型还提供了一种通信手段。
架构师研究会
2019/12/24
5.3K0
ER图转关系模型_实体关系图变关系模型
将每个实体类型转换成一个关系模式,实体的 属性 即为关系的 属性,实体标识符即为关系的键。
全栈程序员站长
2022/11/15
2.8K0
ER图转关系模型_实体关系图变关系模型
秒杀系统数据库设计核心要点详解
秒杀系统是一种高并发场景下的电商营销策略,其成功与否往往直接关系到系统的性能和用户体验。其中,数据库设计作为系统的核心部分之一,扮演着至关重要的角色。在这篇文章中,将详细讲解秒杀系统最核心的数据库设计部分,包括用户表、订单表、商品表、秒杀商品表以及秒杀订单表。
GeekLiHua
2025/01/21
1180
MySQL数据库基础练习系列46、积分管理系统
很多学生或者说是初学者在学习完成数据库的基础增删改查后就自认为在数据库这里就很熟悉了,但是不接触项目根本部知道需求,我这里准备了50个项目的基本需求来让大家来熟练各类项目的列信息,让大家更好的深入项目进行实战式的练习,可以让大家在后面面试的时候有更多更丰富的资历让大家可以与面试官侃侃而谈。
红目香薰
2024/06/16
1140
MySQL数据库基础练习系列46、积分管理系统
oracle基础|数据库模型|实体-关系图(E-R图)|什么是一对一、一对多、多对多
系统设计中一个重要的环节就是数据库设计,数据库设计的时候需要先进行数据建模(实体关系图 E-R图),数据建模的依据就是前期所做的需求分析
小小鱼儿小小林
2021/12/28
8.8K0
数据库:实体关系图(ER图)「建议收藏」
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/152022.html原文链接:https://javaforall.cn
全栈程序员站长
2022/08/31
10.4K0
数据库:实体关系图(ER图)「建议收藏」
mybatisplus实现关联查询(为什么要使用mybatis)
分析步骤: 1、按模块去分析表,不要将系统全部表一次性分析 2、了解每个表存储了什么业务数据 3、了解表中关键字段(主键、外键、索引字段、非空字段) 4、了解表与表之间数据库级别的关系(外键关系) 5、表与表之间的业务关系(一对一、一对多、多对多) 注意:分析表与表之间的业务关系时一定要建立 在某种业务意义基础上
全栈程序员站长
2022/07/26
9950
mybatisplus实现关联查询(为什么要使用mybatis)
mybatis 高级映射和spring整合之高级映射(4)
mybatis 高级映射和spring整合之高级映射 ————————————————学习结构———————————————————— 0.0 对订单商品数据模型进行分析 1.0 高级映射 1.1 一对一查询 1.2 一对多查询 1.3 多对多查询 1.4 resultMap总结 1.5 延迟加载 2.0 查询缓存 2.1 一级缓存 2.2 二级缓存(了解mybatis
王小雷
2019/05/26
9940
JavaWeb06-MySQL深入学习这些就够了!
mysql-2 一.数据库备份与恢复 1. 备份 数据库的备份是指将数据库转换成对应的sql文件。 数据库导出sql脚本的格式: l mysqldump -u用户名 -p密码 数据库名>生成的脚本文件路径 例如: mysqldump -uroot -p1234 day0401>d:\day04.sql 以上备份数据库的命令中需要用户名和密码,即表明该命令要在用户没有登录的情况下使用 2. 恢复 数据库的恢复指的是使用备份产生的sql文件恢复数据库,即将sql文件中的sql语句执行就可以恢复数据库内容。因
Java帮帮
2018/03/16
1.4K0
JavaWeb06-MySQL深入学习这些就够了!
【知识】实体关系图(ERD)的定义和绘制
您将获得关于ER图和数据库设计的基本知识和技能。你会学到ERD是什么,为什么,ERD符号,如何画ERD,等等,以及一些ERD的例子。
辉哥
2022/05/13
5.2K0
【知识】实体关系图(ERD)的定义和绘制
第2篇:数据库关系建模
第二篇:数据库关系建模 前言 ER建模环节完成后,需求就被描述成了ER图。之后,便可根据这个ER图设计相应的关系表了。 但从ER图到具体关系表的建立还需要经过两个步骤:1. 逻辑模型设计 2. 物理模型设计。其中前者将ER图映射为逻辑意义上的关系表,后者则映射为物理意义上的关系表。逻辑意义上的关系表可以理解为单纯意义上的关系表,它不涉及到表中字段数据类型,索引信息,触发器等等细节信息。 本文将详细介绍前者。确切来说,也就是ER模型到逻辑关系表的映射是如何完成的。 基本概念 在开始进行ER模型到逻辑关系表的
Spark学习技巧
2018/03/20
1.7K0
第2篇:数据库关系建模
Laravel Eloquent 模型关联关系详解(上)
我们所熟知的 MySQL、SQL Server、Oracle 都是关系型数据库,何谓关系型数据库?简单来说就是数据表之间存在关联关系。到目前为止,我们介绍的所有 Eloquent 模型操作都是针对单表的,接下来我们将花三篇左右的篇幅来给大家介绍如何在 Eloquent 模型类中建立模型之间的各种关联关系,以及如何实现关联查询和更新。
学院君
2023/03/03
10.1K0
Laravel Eloquent 模型关联关系详解(上)
推荐阅读
相关推荐
数据库设计 ER图
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档