美文网首页
mysql设计规范

mysql设计规范

作者: 阿duang_638a | 来源:发表于2022-02-17 23:44 被阅读0次

    命名规范

    库命名规范

    • 采用单词+下划线'_'组成
    • 命名简洁明确(长度不能超过30个字符)
    • 例如:user,stat,log,也可以wifi_user, wifi_stat,wifi_log 给数据库加个前缀
    • 除非是备份数据库可以加0-9的自然数

    表命名规范

    • 采用26 个英文字母(区分大小写)和0-9 的自然数(经常不需要)加上下划线'_'组成
    • 命名简洁明确,多个单词用下划线'_'分隔。

    字段命名规范

    • 单词+下划线组成 例: user_login, user_id
    • 每个表中必须有自增主键,add_time(默认系统时间)
    • 表与表之间的相关联字段名称要求尽可能的相同

    索引命名规范

    • 命名简洁明确,例如:user_login表,user_name字段的索引应为user_name_index唯一索引

    类型规范

    用尽量少的存储空间来存储一个字段的数据
    能用int就不用varchar,char,能用varchar(10)就不用varchar(255)
    IP地址最好用INT类型
    固定长度的类型最好使用char,例如:邮编
    能使用tinyint就不要使用smallint, int
    最好每个字段一个默认值,最好不能为Null

    索引规范

    为每个表创建一个主键索引
    为每个表创建合理的索引

    建立复合索引请慎重

    三范式

    第一范式:字段值具有原子性,不能再分(所有关系型数据库系统都满足第一范式)

    例如:姓名字段,其中姓和名是一个整体,如果区分姓和名那就必须设立两个字段

    第二范式:一个表必须有主键,即每行数据都能被唯一区分

    备注:必须先满足第一范式

    第三范式:一个表中不能包含其他相关表中非关键字段的信息,即表数据中不能用冗余字段

    备注:必须先满足第二范式
    一般不需要完全遵循第三范式,因为过度的工程化会导致项目过度细化而影响系统整体性能
    例如:老师和学生都有账号,密码等,如果把老师账号和学生账号冗余在其信息表内,而学生账号放在学生信息表内,其实没有影响其整体的存储,但这样的效率省了大量的join操作,提升了性能,(就算拆成几张表也无法节省内存,也只会占用更多的硬盘空间,或内存空间)血的教训!!!!

    掘金 Mysql数据库设计规范

    博客园 MYSQL数据库设计规范与原则

    知乎「MySQL」 - SQL设计规范

    知乎 MySQL 数据表设计规范

    LC社区 MySQL数据库表设计规范

    阿里 数据库设计规范

    相关文章

      网友评论

          本文标题:mysql设计规范

          本文链接:https://www.haomeiwen.com/subject/vmyllrtx.html