9.1.MySQL数据库设计规范要求

为了规范统一,在数据库表结构设计上,设计人员必须遵从以下规则。

  1. 数据库编码。MySQL数据库编码默认采用utf8mb4,而不是utf8。是要考虑到微信昵称中有表情符号,采用传统的utf8无法识别。
  2. 每张表必有Id、AddTime、UpdateTime这个三个字段,注意OrderNum字段。
    1. Id。整数类型,主键,自增长,采用有符号(不要勾选无符号,否则会数据库的int类型会映射为Java的long类型)。
    2. AddTime。datetime类型,不允许为null,设置默认值CURRENT_TIMESTAMP。自动生成的订单编号,会依赖此字段。
    3. UpdateTime。datetime类型,不允许为null,设置默认值CURRENT_TIMESTAMP,且勾上根据当前时间更新
    4. OrderNum。整数类型。不允许为null,默认值0。在开启了排序功能的组件中,必须存在此字段。
    5. 字段位置顺序。Id必为第一个位置,AddTime、UpdateTime必为倒数第2、倒数第1个位置。中途添加了其他字段,注意重新调整顺序。
    6. AddTime与UpdateTime一般不用于业务存储数据,仅作为冗余字段记录数据的添加与更新时间节点。是为了方便以后追溯数据记录,或异常时辅助排查问题。
  3. 字段命名规则,遵从大驼峰法。即首字母要大写。如UserName、Password、SortName等。
  4. 整数类型字段,根据应用场景进行设置
    1. 参与计算的类型。比如价格、数量等。不允许为null,要设置默认值(根据实际情况,一般为0)。如果设置为允许null,在某些计算汇总下,返回值会是null,从而得不到正确的值。
    2. 作为外键关联的Id。比如分类Id等。根据业务场景,可设置允许null,且不能设置默认值。
  5. 外键与索引。数据库中必须要设置外键与索引。
    1. 外键。如果表之间有关联,外键必须要建立。可以通过外键来辅助实现很多功能。
      1. 外键命名规则:FK_表名称_外键字段名称,如:FK_User_RoleId、FK_Student_ClassId。名称中,不需要加上表前缀“qd_”。如果表名称中有下划线,也可以合并,比如表名称为qd_shop_worker,设置ShopId为外键,那么名称规则可以是:FK_ShopWorker_ShopId。驼峰命名法,首字母大写。
      2. 外键限制数据删除。业务要求主表的子表下有数据时不能删除,则可以通过外键设置为STRICT来限制。
      3. 外键递归删除。业务要求删除主表时,所有下级子表数据同步删除,则可以通过外键设置为CASCADE来实现。
    2. 索引。索引可加快数据搜索速度,当数据量大时,速度会有质的提升,所以索引必须要建立。
      1. 索引命名规则:Index_表名称_索引字段名称,如:Index_User_UserName、Index_Order_OrderNo。
      2. tree索引。经常作为连接查询条件的字段,可设置索引。
      3. 唯一索引。如果字段值要唯一不重复,需要设置唯一性索引,采用hash类型。
    3. 触发器。格式:表名称_触发时机_触发事件。表名称可去掉“qd_”或“nc_”前缀,如果中间有“_”隔开,可合并,首字母大写。触发时机只有after和before两种。事件有insert、update、delete这3种。
      1. 如:Project_After_Insert、Project_Before_Insert、ProjectWorkLog_After_Delete。首字母都大写,3个段使用下划线分隔。
发布了89 篇原创文章 · 获赞 71 · 访问量 14万+

猜你喜欢

转载自blog.csdn.net/weixin_42127613/article/details/101354475