数据库的三大范式

 

我不明白为什么要疯狂问这个, 当你问我数据库三大范式的时候, 我可能早就把它们给忘了, 但是你让一个知道三大范式的人, 我们一起来比着设计一个数据库. 还真不一定谁设计的好.

现在越多的反范式设计, why? 范式很重要么? 很重要, 也很不重要.

除了降低冗余, 结构更加符合标准, 还有其他很多要追求的东西, 比如 性能(索引), 需求.

如果你知道数据库的底层结构, 几乎都是B+树, 为了一些功能上的联合排序搜索, 我们比较好的方法就是使用聚簇索引, 这个时候你难道就为了降低冗余来分表么?

好了, 吐槽了这么多, 东西还是要记的.

有一些东西, 不管你日后怎么去否认和厌烦他, 但你毕竟是踩着它上来的, 所以, 稳住.

第一范式

确保每一列保持原子性.

第二范式

每一列都与主键相关, 而不是与主键的部分相关.

第三范式

每一列都有主键直接相关,而不能间接相关.