如何设计字段?你需要知道数据库设计范式

起因

刚接触互联网时,从事的是前端岗位,跟一个40多岁的老大哥合作项目,项目推进的时候老大哥各种摆谱不按计划来,那种被扼住咽喉的感觉让我暗下决心,一定要能独挡一面,一个人要有搞定一个项目的能力和视野。最后被逼成为了一个伪全栈。

窘迫感

当自己真有能力搞定前后端的时候,发现在设计数据库的时候很困难。

刚开始接触后段开发,一个项目设计到开发能正常运行就开心到飞起了。后来熟练一些后发现很多跟数据库设计的问题涌上来了,总感觉设计得很别扭。就在想有没有参考标准或者规范?还真有!

数据库范式

本文不作为一个面面俱到的文章,尽量帮助想尝试自己设计数据库的(前端Or其他)小伙伴自己设计出符合基础规范的数据库,少走一些弯路。同时也作为自己的经验总结,写成文章作为重构复盘参考

数据库范式规定的是数据表之间字段联系合理性程度。符合范式设计的数据库具有如下好处

第一范式

数据表中每一个字段具有原子性,不可再分

学生编号

学生姓名

地址

1

张雷

陕西省西安市未央区

2

赵芬

湖南省长沙市芙蓉区

地址 字段不符合第一范式,可再分

1

陕西省

西安市

未央区

2

湖南省

长沙市

芙蓉区

第二范式

表中每列字段都要跟数据表主键关联,不要出现部分依赖

学生编号

学生姓名

课程名称

分数

1

张雷

语文

150

2

赵芬

物理

100

课程名称和分数 字段不符合第二范式,两个字段跟主键编号没有太大关联

学生编号

课程名称

分数

1

语文

150

2

物理

100

第三范式

表中每列字段都要跟数据表主键直接关联,不要出现传递依赖

学生编号

学生姓名

课程编号

课程名称

代课老师

分数

1

张雷

1

语文

刘老师

150

2

赵芬

2

物理

周老师

100

课程名称、代课老师和分数 不符合第三范式,这些字段依赖课程编号,课程编号依赖学生编号,存在传递依赖.且课程相关继续拓展字段,会产生更多的依赖

学生分数记录表

学生编号

课程编号

分数

1

2

150

2

1

100

课程相关表

课程编号

课程名称

代课老师

1

语文

刘老师

2

物理

周老师

题外话

专注能力和自我定位很重要。如果不是被迫成为全栈工程师,尽量把精力集中在自己擅长的领域,如果你想纵向发展,就专注某一个技术点成为No1。如果你想独当一面,可以独自完成一个项目,为创业做准备可以考虑把视野放开,创业前期,你所有会的技能都能帮你抵御一些投入成本和风险。(专业的事交给专业的人做、合作共赢这两句话绝对没错,但是大部分人白手起家创业,都不具备这种前提条件...)


作者:winyh
链接:https://juejin.cn/post/7168822614096347172

展开阅读全文

页面更新:2024-03-10

标签:范式   字段   数据库   数据表   课程名称   分数   编号   课程   老师   学生

1 2 3 4 5

上滑加载更多 ↓
推荐阅读:
友情链接:
更多:

本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828  

© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号

Top