当前位置: 首页 > article >正文

经典系统重塑(sql层)

内容

这个音乐门户网站是我一直在写的一个项目,因为周期较长,虽然功能都给予了大体实现,但是确实无论是sql层面还是业务层面都有很大缺陷。

先看最主要的music表,这music字段指的是音乐地址,名字需要改一下,还有musician_id和musician明显不符合三范式,删掉musician字段,与musician表进行连表查询,由于是发布专辑,专辑里有歌曲,所以歌曲相当于专辑的一个子,生命周期的create是相同的,所以把create_time字段转移到musician表中,其实可以把duration(歌曲时间),这种字段,新建一个music_data表然后移进去,但是现在关于歌曲信息的字段就一个,因为点赞数和评论数等信息是使用redis和count函数完成的,后期对点赞和评论系统进行优化的时候会进行涉及处理。这个create_time字段与这个time字段写重了,修改后music表结构为:

 在mybatis-plus里的思想是一个表对应一个controller类,一个service接口,一个service实现类,一个mapper接口,一个Po实体类,但是由于是表分立的思想,所以他对连表的支持其实比较有限,需要嵌入sql语句,可读性和封装型都不如写mybatis的注解或xml。

对于表的修改还有就是对这个专辑表的专辑风格进行了修改,之前是varchar形式,现在修改成id。

当写这篇文章的时候,对于原系统的改造就已经彻底完成了,包括oss的文件转移到前端去实现。以及全部sql的改写

总结

 总体来说,这次改造可以使系统结构更加清晰,可扩展性,抗压性,稳定性,合理性都有了质的突破,因为如果不进行重塑,该系统下的其他功能将会很乱,变成屎山。比如musician_name和musician_id同时存在,就只单单查询这一条sql业务简单了一点点,可能速度快了一点点点,但是面对音乐人注销,音乐人改名,这个业务就会变得及其复杂,难以维护


http://www.kler.cn/a/446104.html

相关文章:

  • 使用二分查找法找出给定点距离给定点集合距离最近的点
  • linux普通用户使用sudo不需要输密码
  • Java中的方法重写:深入解析与最佳实践
  • 面试小札:Java后端闪电五连鞭_8
  • 基于 Python 解决 X 轴上点距离最小值问题
  • 详解 Qt WebEngine 模块
  • 免登陆是什么?
  • AI Agent案例全解析:百度营销智能体(8/30)
  • 机动车油耗计算API集成指南
  • 简单工厂模式和策略模式的异同
  • Ubuntu RTSP 客户端和服务器实现
  • JVM中的方法绑定机制
  • 如何使用java来解析一个pdf文件呢?
  • 12_HTML5 Video(视频) --[HTML5 API 学习之旅]
  • 嵌入的律动,科技的心跳
  • 【mybatis】基本操作:详解Spring通过注解和XML的方式来操作mybatis
  • react 项目打包二级目 使用BrowserRouter 解决页面刷新404 找不到路由
  • [Unity Shader]【图形渲染】【游戏开发】 Unity Shader与原始Shader的区别
  • 电脑除尘更换cpu和显卡硅脂过程及安装win11系统中遇到的问题
  • Django 中的 reverse 【反向/逆转/扭转/逆向】使用详解以及使用案例
  • C# 模式匹配
  • C++打小怪游戏
  • Dhatim FastExcel 读写 Excel 文件
  • MFC/C++学习系列之简单记录3——不同IDE版本和MSFlexGrid的使用
  • java 根据路径下载文件转换为MultipartFile,并且上传到服务器
  • ttf字体文件转化为pf2字体文件