1、三范式原则
第一范式、 1NF是对属性的原子性约束,要求属性具有原子性,不可再分解;
第二范式、 2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性;
第三范式、 3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。
2、 主键设计
主键不要与业务逻辑有所关联,最好是毫无意义的一串独立不重复的数字,常见的比如UUID或者将主键设置为Auto_increment;
3、 字段使用次数
对于频繁修改的字段(一般是指状态类字段)最好用独立的数字或者单个字母去表示,不用使用汉字或长字符的英文
4、 字段长度
建表的时候,字段长度尽量要比实际业务的字段大3-5个字段左右(考虑到合理性和伸缩性),最好是2的n次方幂值。不能建比实际业务太大的字段长度(比如订单id如果考虑要业务增长的话,一定要使用Long型,对应的数据库的数据类型是bigint),这是因为如果字段长度过大,在进行查询的时候索引在B-Tree树上遍历会越耗费时间,从而查询的时间会越久;但是绝对不能建小,否则mysql数据会报错,程序会抛出异常;
5、 关于外键
尽量不要建立外键,保证每个表的独立性。如果非得保持一定的关系,最好是通过id进行关联
6、 动静分离
最好做好静态表和动态表的分离。这里解释一下静态表和动态表的含义,静态表、 存储着一些固定不变的资源,比如城市/地区名/国家(静态表一定要使用缓存)。动态表、 一些频繁修改的