Skip to content

模型设计

命名

】数据库、表、视图和字段请采用英文命名,避免使用中文。

📍 INFO

数据表作为系统的底层,可能会存在与其他编码服务共享读写数据库表的场景。英文编码对于编码开发更友好。

】字段名称的修改代价很大,请谨慎命名。建议使用小写字母或数字,并且尽量规避数字开头、两个下划线中只出现数字等。

📍 INFO

部分数据库(例如 MySQL)在不同的操作系统下,大小写区分规则会发生变化。因此,统一的命名规则可以避免节外生枝。

】在设计器中为英文字段名设置中文的「别名」可以提升开发效率。

字段

】使用表设计中的「关联字段」功能,确保数据库设计遵循数据库设计范式,特别是1NF - 3NF。

🔎 数据库设计三范式
  • 1NF:无重复的列(不可拆分的字段)。数据库表的每一列都是不可分割的原子数据项,而不能是集合,数组,记录等非原子数据项。如果不能满足范式,必须拆分为不同的属性。
  • 2NF:属性完全依赖于主键(主从表)。数据库表中的每一列都和主键相关,而不能只与主键的某一部分相关。如果不能满足范式,必须拆分为从表。
  • 3NF:属性不依赖于其他非主键属性(字典表/主数据表)。数据表中的每一列数据都和主键直接相关,而不能间接相关。如果不能满足范式,必须拆分为字典表。

】请为数据字段选择合适的字段类型。

🔎 活字格的字段类型映射

下表为活字格设计器的字段类型与外联库字段类型的对应关系及部分典型应用场景。

活字格字段类型外联库的字段类型(例:MySQL)
文本VARCHAR、TEXT,根据长度自动判断
整数INT
小数FLOAT
是/否BOOL/TINYINT(1)
时间DATETIME
日期DATE
附件VARCHAR (活字格存储的是文件唯一标识,而不是文件本身)
图片VARCHAR (活字格存储的是文件唯一标识,而不是文件本身)
用户VARCHAR (活字格存储的是用户名)

】请为数据字段设置「缺省值」。

】在使用外联库时,合适的字符存储长度,不但节约数据库表空间、节约索引存储,更重要的是提升检索的速度。

索引

】数据库字段一定要建索引,尤其是频繁查询的表。

📍 INFO

索引是一种特殊的文件,包含着对数据表中所有记录的引用指针。通俗来说,索引就好比是一本书的目录,能加快数据库的查询速度。设置了合适的索引之后,数据库利用各种快速定位技术,能够大大加快查询速度。这也是创建索引的主因。

】非必要,请确保不超过两个表进行关联,进行关联时应该保证关联的列类型严格一致,并且保证关联字段都存在索引。

📍 INFO

每关联一个表,都会增加成倍的复杂度。如果关联字段没有设置索引,查询速度会明显降低。

  • 如果使用查询条件,请为高频查询字段设置索引。
  • 如果使用列头筛选,请为高频列字段设置索引。

】在业务上有唯一特性的字段,即使是组合字段,也必须建成唯一索引,否则极有可能会产生脏数据,影响业务逻辑。