1、三范式
①.原子性,字段不可再分;(实际操作中要根据具体需求考虑数据是否有必要做更细节的拆分)
②.字段完全依赖于主键,消除部分依赖;
③.确保每列都和主键直接相关,消除传递依赖;
违反第②和第③条会导致数据冗余!
数据库设计最重要的是看需求和性能,需求>性能>表结构
2、数据库事务
数据库事务:单个逻辑工作单元执行的一系列数据库操作要么全部成功、要么全部失败。
①.原子性:事务中包含的程序作为数据库的逻辑工作单元,它所做的对数据库的操作要么全部成功,要么完全不执行;
②.一致性:在一个事务单元执行之前和执行之后数据库都必须处于一致性状态;例如数据库的状态满足所有的完整约束;
③.隔离性:一个事务内部的操作以及正在操作的数据必须封锁起来,不被其他企图进行修改的事务看到;
④.持久性:当系统或介质发生故障时,确保已经提交的事务的更新不能丢失。