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

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

时间:2024-06-14 22:59:27浏览次数:27  
标签:product ID user MySQL 周内训 主键 order id ER

题目要求详情地址: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图与数据库模型图绘制示例

<iframe allowfullscreen="true" data-mediaembed="bilibili" frameborder="0" id="YLGAzg9f-1717939424446" src="https://player.bilibili.com/player.html?aid=1305682910"></iframe>

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图

标签:product,ID,user,MySQL,周内训,主键,order,id,ER
From: https://blog.csdn.net/feng8403000/article/details/139563543

相关文章

  • 成为MySQL DBA后,再看ORACLE数据库(九、用户与权限)
    数据库的用户和权限的管理是DBA日常运维工作中的重要组成部分,不同数据库的用户权限体系及管理方式也会有差别,本文将对ORACLE的用户权限体系和常用操作进行一个总结。一、用户管理ORACLE中创建用户语句和mysql一样,不同的是mysql可以在用户后面加ip以实现ip层面的访问控制。在ORAC......
  • FreeRTOS 简单内核实现1 前言
    0、写在前面为深入理解RTOS内核工作机制,笔者制作了名为“FreeRTOS内核简单实现”的项目专栏,目标为自己动手从0到1编程一个简单的RTOS内核,从而实现任务并行工作的效果,主要实现了以下功能静态创建任务临界段保护支持任务多优先级任务阻塞延时时间片轮询注意:本......
  • 鸿蒙开发文件管理:【@ohos.fileManager (公共文件访问与管理)】
    公共文件访问与管理该模块提供公共文件访问和管理的服务接口,向下对接底层文件管理服务,如媒体库、外卡管理;向上对应用程序提供公共文件查询、创建的能力。 说明:本模块首批接口从APIversion9开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。本模块接口......
  • MySQL的连接工具navicat报argument out of range解决办法
    MySQL5.7.22查询时候报错argumentoutofrange报错代码原因sql_mode模式导致参考sql_mode默认配置showvariableslike'sql_mode';ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO......
  • 鸿蒙开发电话服务:【@ohos.telephony.observer (observer)】
    observer说明:本模块首批接口从APIversion6开始支持。后续版本的新增接口,采用上角标单独标记接口的起始版本。导入模块importobserverfrom'@ohos.telephony.observer'observer.on(‘networkStateChange’)on(type:‘networkStateChange’,callback:Callback......
  • Miller Rabin算法判定质数(OI向)
    前言:本篇不太适合那些对数学证明要求严格的Oier,然后本人也是蒟蒻,主要写给自己回顾用的MillerRabin算法能快速的判断一个数是否为质数,作为一个数学算法它具有一定的玄学成分,但是在OI中通过一些手段可以使其达到100%正确。先让我们对比一下一般算法书教的2种关于质......
  • 在Robot Operating System (ROS)中常见的消息类型
     在RobotOperatingSystem(ROS)中,消息(Messages)是用来在节点之间传输数据的标准方式。ROS定义了一系列预定义的消息类型,这些类型覆盖了从简单的数据类型到复杂的机器人感知和控制数据。以下是ROS中一些常见的消息类型:1.**std_msgs**:标准消息类型,包括基本的数据类型如整......
  • 【SQL Server】SQL server复制表结构和复制表数据
    From: https://blog.csdn.net/qq_36636312/article/details/987623941,复制表结构select*into新表名称from旧表名称;1这个SQL语句可以将表的数据也复制过来注意:像主键,外键这种属性是无法复制过来的补充:当新表名称已经在数据库中存在的时候,使用此语句操作则会报错法2:也可以......
  • 【学习Docker】
    学习Docker可以分为几个步骤和阶段,以下是一个建议的学习路径,适合初学者到进阶用户:###1.理解基本概念-**容器化与虚拟化**:了解容器化与传统虚拟化之间的区别,容器的轻量级和效率。-**Docker组件**:Docker客户端、Docker守护进程、Docker镜像、Docker容器、Docker仓库等。......
  • tkinter文件选择对话框
    tkinter文件选择对话框Tkinter文件选择对话框效果代码Tkinter文件选择对话框Tkinter提供以下文件选择对话框:tkinter.filedialog.askopenfilename():打开文件对话框,选择单个文件。tkinter.filedialog.askopenfilenames():打开文件对话框,选择多个文件。tkinter.filed......