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了

总结

相关推荐
程序员小崔日记36 分钟前
一篇文章彻底搞懂 MySQL 和 Redis:原理、区别、项目用法全解析(建议收藏)
redis·mysql·项目实战
武子康2 小时前
大数据-241 离线数仓 - 实战:电商核心交易数据模型与 MySQL 源表设计(订单/商品/品类/店铺/支付)
大数据·后端·mysql
爱可生开源社区18 小时前
MiniMax M2.5 的 SQL 能力令人惊艳!
sql·llm
用户83071968408221 小时前
MySQL 查询优化 30 条封神技巧:用好索引,少耗资源,查询快到飞起
mysql
Nyarlathotep01131 天前
事务隔离级别
sql·mysql
Nyarlathotep01131 天前
SQL的事务控制
sql·mysql
用户86178277365181 天前
MySQL 8.0从库宕机排查实录:中继日志膨胀引发的连锁故障复盘
mysql
NineData2 天前
NineData智能数据管理平台新功能发布|2026年1-2月
数据库·sql·数据分析
随风飘的云2 天前
mysql的innodb引擎对可重复读做了那些优化,可以避免幻读
mysql
阿里云大数据AI技术3 天前
用 SQL 调大模型?Hologres + 百炼,让数据开发直接“对话”AI
sql·llm