如何设计一张数据库表,或者说设计一张数据库表需要注意些什么,这是我最近在思考的问题,刚开始,我简单的罗列了一下注意事项:
一时间,我发现我只能想到这些:主键、索引、外键,竟觉得有些空洞,于是我便开始查阅资料…
命名规范(表名、字段名、索引名 要具有规范性、易读性)
选择合适的字段类型(占用尽量少的空间,字段长度一般设置为 2^n )
合理的主键(尽量与业务逻辑无关)
优先考虑逻辑删除,而不是物理删除
添加通用字段
单表字段数量不宜过多(一般不超过 20 个)
尽量使用 not null 定义字段
合理添加索引(单表索引数量一般不超过 5 个)
不需要严格遵守 3NF(数据库三范式),字段合理冗余
避免使用 MySQL 保留字(select、insert…)
尽量不使用外键关联(一般通过业务逻辑保证关联)
尽量使用 InnoDB 存储引擎
选择合适的字符集(utf8、utf8mb4、GBK、latin1)
字段尽量添加注释