MySQL进阶-3-SQL实战

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录


前言

(⾯试题)

  1. 请描述数据库设计的主要步骤,并说明每个步骤的重点?
  2. 请解释⼀下数据库设计中的范式,并举例说明它们的应⽤?
  3. 数据库范式可以解决什么问题?
  4. 在设计数据库表时,如何考虑数据的完整性和安全性?
  5. 请举例说明⼀对⼀、⼀对多和多对多关系在数据库设计中的实现⽅式?
  6. 请描述如何使⽤ E - R 图进⾏数据库设计,并举例说明?
  7. 如何在数据库设计阶段考虑系统的扩展性?

2. 软件⽣命周期

软件⽣命周期中以划分为可⾏性研究、需求分析、概要设计、详细设计、实现、组装(集成)测试、确认测试、使⽤、维护、退役10个阶段

数据库设计步骤

❤️ 可以分为四个阶段

• 需求分析

• 概念设计

• 逻辑设计

• 物理设计

需求分析

• 需求分析阶段产出的需求⽂档将指导数据库的设计,包括数据模型的构建和数据库结构的规划。

• 需求分析还包括数据的安全性和隐私保护要求,以及数据备份和恢复策略。

概念设计

• 概念性设计阶段,设计师需要构建数据模型,包括实体-关系模型(ER模型)和类图。

• ER模型通过实体、属性和关系来描述数据结构,是理解数据关系的重要⼯具。

• 类图则更侧重于对象之间的关系,适⽤于⾯向对象的数据库设计

逻辑设计

• 逻辑设计阶段,将概念设计转化为具体的数据库结构,包括表结构和视图的定义。

• 表结构定义包括字段的名称、数据类型、⻓度等属性,以及表之间的关系。

• 通过创建视图,可以简化复杂的查询,提⾼数据的安全性和易⽤性。

物理设计

• 物理设计阶段,需要考虑数据库的存储细节,包括⽂件的存储位置、是否创建索引和数据分区。

• ⽂件存储位置的选择会影响数据的访问速度和备份策略。

• 索引的创建需要权衡查询效率和维护成本。

• 数据分区可以提⾼⼤规模数据库的管理效率

2. 功能架构介绍-租房

3. 编写

绘制ER图

sql 复制代码
-- 创建C端用户表app_usre
create table app_usre (
    id bigint primary key auto_increment comment '编号,主键自增',
    nick_name varchar(64) not null comment '昵称',
    phone_num varchar(64) comment '电话',
    open_id varchar(64) comment '微信openId',
    password varchar(64) comment '密码',
    salt varchar(64) comment '盐',
    avatar varchar(255) comment '头像地址',
    remark varchar(255) comment '个人简介'
);






4. 建立关系

字典类型-字典条⽬

字典类型-字典条⽬之间是⼀对多系,⼀个类型下可以配置多个条⽬

1个字典有多个条目,就是有多个选择,下拉框有多个选择

聊天会话-聊天内容

聊天会话-聊天内容之间是⼀对多系,⼀个会话下多条聊天内容

房源与关联表

• 出租状态是房源是⼀对⼀关系

• 房源标签与房源是多对多关系

• 房源与⾏政区域是多对⼀关系

⼀对多关系在从表中通过关联字段与主表建⽴关系

多对多关系通过单独创建关系表建⽴两表之间的关系

5. 逻辑设计

数据库名: bit-zufang

表名前缀:为每个表添加必要的前缀,以便区分所⽀撑的业务类型,常⻅的前缀类型:

• 系统表(sys_):如系统⽤⼾表(sys_user)、系统⻆⾊表(sys_role)

• 业务表(app_):如⽤⼾表(app_user)、房源表(app_house)

• 字典表(dic_):如地区表(dic_region)、ICD编码(dic_icd)

• 关系表(rel_):如rel_user_role,保存多对多关系数据

• 统计表(sta_):如sta_product_sale,从其他表中计算得出统计数据

公共字段:⽆特殊说明的情况下,每张表必须有⻓整型的⾃增主键,删除状态、创建时间、更新时间,如下所⽰:

B端⽤⼾表sys_usre

⾏政区域表sys_region

字典类型表sys_dic_type

等等就不全部弄出来了

最后就是编写SQL了

总结

相关推荐
胖头鱼的鱼缸(尹海文)32 分钟前
数据库管理-第423期 Oracle AI DB 23.26.2新特性一览(20260504)
数据库·人工智能·oracle
木井巳40 分钟前
【MySQL数据库】数据库操作及数据类型
数据库·mysql·adb
爱莉希雅&&&1 小时前
MySQL MGR + MySQL Router 高可用集群完整笔记(含手动配置 + Shell 接管双路线)
linux·数据库·笔记·mysql·mysqlrouter·mysqlshell
战南诚2 小时前
深分页问题
数据库·mysql
万事大吉CC2 小时前
【4】深入剖析 Django 之 MTV:ORM 系统核心原理
数据库·python·oracle·django·sqlite
ByteX2 小时前
MySQL 联合索引创建效果评估
数据库·mysql
User_芊芊君子3 小时前
从 0 到 1 学 MySQL:索引原理、事务特性、视图用法与 JDBC 实操全解析
大数据·数据库·mysql
HalvmånEver4 小时前
MySQL事务(一)
linux·数据库·学习·mysql
会编程的土豆4 小时前
MySQL 多表查询
开发语言·数据库·python·mysql
四方云5 小时前
MySQL 迁移到 Apache Doris 生产实践:从评估到落地的完整指南
数据库·mysql·apache