首页 mysql正文

mysql建库建表规则

admin mysql 2019-06-20 53 1

建库规则

  • 库名称命名:
    • 小写字母.
    • 不使用驼峰, 使用 下划线 命名.
  • 字符集: utf8
  • 排序规则: utf8_general_ci

示例:

CREATE DATABASE test DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

建表规则

  • 表名称命名:
    • 小写字母.
    • 不使用驼峰, 使用 下划线 命名.
    • 前缀必须以 pcore_ 开头.
  • 字符集: utf8
  • 排序规则: utf8_general_ci
  • 存储引擎: InnoDB
  • 需要符合数据库 BCNF, 若因为特殊情况, 不能满足, 必须标注说明原因.
    • 第一范式: 属性不可分, 原子数据项.
    • 第二范式: 非主属性必须完全依赖于主键.
    • 第三范式: 消除依赖, 任何非主属性不依赖于其他非主属性.
    • BCNF: 主属性不依赖于主属性.
  • 需要写清楚表注释, 以及每一个字段的注释.
  • 表必须包含 主键, 且主键 自增.(因为MGR)
  • 字段规则:
    • 小写字母.
    • 不使用驼峰, 使用 下划线 命名.
    • 字段默认 不能为空
    • 对于某些不确定字段的字符信息, 尽量不要用固定的长度, 使用 varchar(255), 避免后期产生不必要的问题.
    • 如需要将内容存于mongo, 该字段的类型必须为 char(24).
    • 字段顺序: 第一个字段必须是主键, 后四位字段顺序:
      • status tinyint(1) 状态(预留, 默认 0)
      • create_time int(10) 创建时间
      • update_time int(10) 更新时间
      • status_time int(10) 状态更新时间

示例:

CREATE TABLE `pcore_user` (
  `user_id` int(10) NOT NULL COMMENT '用户id',
  `user_name` varchar(255) NOT NULL COMMENT '用户名',
  `cellphone` char(11) NOT NULL COMMENT '手机号',
  `admissibility` tinyint(1) NOT NULL COMMENT '受理情况(默认 未受理  0, 予以受理 2, 不予受理 -2)',
  `status` tinyint(1) NOT NULL COMMENT '状态(预留, 默认 0)',
  `create_time` int(10) NOT NULL COMMENT '创建时间',
  `update_time` int(10) NOT NULL COMMENT '更新时间',
  `status_time` int(10) NOT NULL COMMENT '状态更新时间'
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='用户表';

ALTER TABLE `pcore_user`
  ADD PRIMARY KEY (`user_id`);

ALTER TABLE `pcore_user`
  MODIFY `user_id` int(10) NOT NULL AUTO_INCREMENT COMMENT '用户id';

权限分配

  • 默认生产环境只会给予账户
    • 添加
    • 更新
    • 查询
    • 执行存储过程权限
  • 如果需要额外的权限(如删除)
版权声明

本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。

评论

精彩评论
  • 2019-07-12 11:44:22

    mysql 在某个字段之前或者之后添加字段
    alter table account Add column is_admin TINYINT not null default 0 AFTER hotel_id