Hello,我是方才,今天和大家分享下方才工作7年总结出来的数据库表设计方法论,成体系,有细节!大家一定要看完,说不一定其中的某个点就能帮到你(文末可获取完整的方法论图谱哟)。
根据方才的经验,参考如下流程,进行表结构的设计是比较高效的,同时产出的内容可靠度也是非常高的,禁得起推敲。
其中对需求的分析是很多程序员容易忽略的,但需求分析是表结构设计中最重要的一个环节呀。
大家可以直接看图,可以参考如下维度进行需求的拆解和分析,这些维度并不是固定的,对于不同类型的业务系统,可以增加其他维度。
同样的需求,可以实现的方案一般情况都是有多种的。
方才习惯于先基于业务需求场景,去拟定若干个方案的评估指标;
然后再去头脑风暴,思考可能的方案有哪些,结合评估指标去综合选择出相对最优的方案。
然后再对该方案进行细化,输出更加完整的内容,比如架构图、流程图、E-R图、核心功能的伪代码等等(ps:输出的技术方案,不仅仅是对逻辑的二次确认,也便于和其他同学的协作,以及后续的迭代维护)。
以上这两点,是高级程序员必须掌握的技能,能完成需求的拆解分析到技术方案的拟定,并能将相关的内容传递给初中级程序员进行落地。
有了确定的技术方案后,就进入到了完整的表结构设计阶段。
主要思想是参考数据库范式&反范式设计,结合阿里巴巴规约,以及历史经验的总结,完成从表名、字段名、字段类型的定义(可以看思维导图)。
ps:因为本文主要是讲述完整的方法论,若大家想要看更加详细的设计经验和实际运用的过程,可以在评论区告诉方才哟。
关于索引,方才发现很多初中级程序员都没有形成一个方法论。
除了主键,要么没有其他索引,要么就是索引一大堆。
方才结合自己针对数十亿表的索引优化经验,总结如下:
以上,就是方才一直在用的表结构设计方法论,如果对以上内容有想要了解细节的,记得在评论中告诉方才哟。
原创不易,如果对你有所帮助,记得帮方才点个赞、点个推荐,来个转发。