数据库设计三大范式:
- 第一范式:数据表中的每一列必须是不可拆分的最小单元(原子性);
- 第二范式:表中所有列必须依赖于主键,一个表只表述一件事情;
- 第三范式:表中每一列只与主键直接相关而不是间接相关,表中每一列只能依赖主键;
反范式的优点
- 可以避免关联,因为所有的数据几乎都可以在一张表上显示;
- 可以设计有效的索引;
反范式的缺点
- 表格内的冗余较多,删除数据时候会造成表有些有用的信息丢失。
数据库五大约束
- primary KEY:设置主键[1]约束
- UNIQUE:设置唯一性约束,不能重复值
- DEFAULT:默认值约束
- NOT NULL:设置非空约束,改字段不能为空
- FOREIGN KEY:设置外键[2]约束
设置外键
CONSTRAINT 外键名 FOREIGN KEY(外键字段)REFERENCES 参照表(参照字段)ON DELETE SET NULL ON UPDATE CASCADE设置参照完整性
- RESTRICT拒绝参照表删除或更新参照字段;
- CASCADE删除活更新参照表的参照字段时,外键表的记录同步删除更新;
- SET NULL 删除活更新参照表的参照字段时,外键表的外键设为NULL;
- 用户量大,并发度高,为此数据库服务器很容易成为性能瓶颈,尤其受IO能力限制,且不能轻易地水平扩展;若是把数据一致性的控制放到事务中,也即让应用服务器承担此部分的压力,而引用服务器一般都是可以做到轻松地水平的伸缩;