在使用MySQL进行数据库建表时,需要考虑以下几点:
1 数据库设计
在建表前,需要进行数据库设计,包括确定数据库的名称、表的数量、表之间的关系等,这是建表的前提。
2 表的命名规范
建表时需要注意表名的命名规范,最好使用有意义的表名,避免使用含有特殊字符或关键字的表名。
3 字段类型选择
在创建表字段时需要选择合适的字段类型,包括整型、字符型、日期型等,需要根据实际需求选择。
4 字段长度设置
对于字符型字段,需要根据实际需求设置字段长度,避免造成数据的浪费或存储不足。
5 主键设计
需要为每个表设置主键,主键可以保证数据的唯一性,在一些查询和操作中也有重要作用。
6 索引设置
在建表时需要考虑到表的查询效率,可以根据实际需求为表创建索引,提高查询效率。
7 字段默认值
在创建表字段时需要为字段设置默认值,这样可以保证在插入数据时不会因为缺少某些字段而导致失败。
8 字段约束
在创建表字段时需要进行字段约束的设置,包括非空约束、唯一约束等,这样可以保证数据的完整性。
在进行MySQL数据库建表时需要考虑多方面因素,合理设计数据库结构、表字段类型及长度,以及注意字段约束和索引的设置,这样可以保证数据的质量和查询效率。
1.注意选择存储引擎,如果需要支持事务,选择InnoDB
2.注意字段类型的选择,对于日期类型,如果是时分秒选择datatime,如果是只记录年月日使用date类型,对于字符类型的选择,固定长度字段选择char,不固定的选择varchar,varchar比char节省空间,但是效率没有char高。对于内容介绍类的长广文本字段使用text或longtext类型,如果存储图片等二进制数据使用blob或者longblob类型,对于金额数字建议使用decimal;对于数值类型的字段在确保取值范围的前提下尽量使用占用空间较小的类型
3.主键字段建议使用自然主键,不要带有业务意义
4.如果要存储text或者blob字段,建议分表,使用id等字段进行关联
5.尽量不要定义外键,保证表的独立性,可以存在外键意义的字段。
6.设置字段默认值,如状态时间创建人等
7.注意每个字段写清楚注释
8.注意字段的非空,唯一等约束
我们设计表及其字段之间的关系, 应尽量满足第三范式。但是有时候,可以适当冗余,来提高效率。比如以下这张表
当然,这只是个小例子哈,大家开发设计的时候,要结合具体业务分析哈。
尽可能使用not null定义字段
如果没有特殊的理由, 一般都建议将字段定义为 NOT NULL 。
为什么呢?
- 首先, NOT NULL 可以防止出现空指针问题。
- 其次,NULL值存储也需要额外的空间的,它也会导致比较运算更为复杂,使优化器难以优化SQL。
- NULL值有可能会导致索引失效
- 如果将字段默认设置成一个空字符串或常量值并没有什么不同,且都不会影响到应用逻辑, 那就可以将这个字段设置为NOT NULL。