数据库设计是获得良好性能的基石,特别是新手,或者说入行一两年的工作来说,其实大多数面试所提到的就是数据库,最基本的就是数据库的设计了。一个表如果设计得不合理,它的后期扩展将会让你一筹莫展,香菇无泪啊!所以个人的建议是必须要多借鉴一些项目中的数据库设计,多想想别人为何会这么设计的,比方说看看ecshop的商品,订单表的设计,dedecms或者wordprss等的一些内容表设计,数据类型,拆分表,临时表,范式与反范式。其实提到三范式,应该还有很多PHP的开发者不是很熟悉,作为后端编程,如何处理数据和如何做到高性能架构都是你的亮点,也是做为后端开发可说必备或者进阶必备的知识实践出来的经验。
一.不合理的设计
先举两个例子(可跳过,举例是为了加深印象)
1.第一个例子:相信大部分人都会碰到需求变更需要改表,但且愁眉苦脸地感觉前期设计的表有多坑。
这是一张已存储了19339条记录的规格表,主要的用途是服装类的规格表,如果是放在后期的需求变更里要修改[将颜色
和尺码
分出去,如淘宝的先选择尺码再选择服装颜色],为了兼容原来已有的19339多记录,你会用什么办法做向后兼容,既符合需求变更,也能更快地实现呢?
2.第二个例子&