收藏文章:
数据库建表原则
数据库范式
1NF
原子性,表中列不能在分,比如地名可以有省,市,区..构成,如果把省市区放在一个字段里面,那么
陕西省的人,省都是陕西,这样不就是一种冗余,而且,你想统计所有陕西的人,那么你就只能通过like
来模糊匹配….2NF
要求数据表里的所有数据都要和该数据表的主键有完全依赖关系;如果有哪些数据只和主键的一部份有关的话,它就不符合第二范式。同时可以得出:如果一个数据表的主键只有单一一个字段的话,它就一定符合第二范式(前提是该数据表符合第一范式)。—-摘自百度百科
主要用于联合主键的情形
比如订单和商品如果在一个表中的话,order_id 和 product_id 就构成了联合主键,但是商品信息只依赖product_id , 并不在乎order_id , 而且,一个商品可以在多个订单中,那么在每个订单中都要写这个商品的信息 — 冗余3NF
每个非关键字列都独立于其他非关键字列,并依赖于关键字,也就是说某个非关键属性不能由其他非关键属性派生(推导)出来
mysql 索引 : 1g 330M 加索引与不加索引
- 什么是B树,B+树
- MySQL索引背后的数据结构及算法原理 - 很详细的一片文章