1.关于命名风格:
(1)每个单词加下划线 (2)采用帕斯卡命名,每个单词首字母大写
注意:反对拼音或者汉字
2.关于主键,外键,等基础概念小结
(1)主键:一般采用int/bigint类型自增,也可以采用GUID(全球唯一识别码) 程序生成,字段较长,比较占用数据库空间
(2)外键:不建议用真实外键(即references),一般采用虚拟外键
(3)存储过程:一般比较复杂的逻辑处理,或者复杂的报表查询建议用,不然不推荐使用太多,更多的事情还是教给程序处理比较好
(4)事务:事务有四个原则(原子性,一致性,隔离性,持久性),使用事务的过程中会进行锁表,所以事务尽量简介,滥用易造成死锁
(5)油标:将结果集循环出每一个对象进行处理,类似程序中的for循环,不推荐用,使用过程中会锁表,严重影响性能
(6)视图:多张表联合起来的一个查询,并不会提高性能,只是简化了查询语句,提供了查询的方便性
(7)触发器:一般比较少用,分 instead of触发器和 after触发器
(8)函数:自定义函数和系统函数,自定义函数可以方便查询,但不可多用,因为容易给数据库造成压力
(9)关于删除,一般是逻辑删除(更新is_deleted的标记字段,保留数据,数据为王),不需要的数据可以物理删除
3.关于数据库设计
(1)三大范式:
1.每列都确保其原子性,即每一列都是不可拆分的,如:地址中的省,市,区可以分为三个字段进行存储
2.每列都和主键内容相关,如:用户表就只存用户表,不要将部门的信息存进来,应该单独分开部门表字段
3.每列都和主键内容直接相关,如:订单表中只存产品id字段,产品的名称,价格等属性分表存储
(2)设计思路
一般根据“一对一,多对一,一对多,多对多”的原则来设计主从表