企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
## 表和字段命名 表和字段的命名以`PHP`编码中的命名规范为基本准则。 所有数据表名称,一律使用单数的形式,比如:命令为 `user` 而不是 `users` 当几个表间的字段有关连时,要注意表与表之间关联字段命名的统一,如 `ims_rule_keywords` 表中的 `rid` 与 `ims_rule` 表中的`rid`。 ## 主键 每个表必须包含一个名称为 `id` 的自增主键。 ## 字段结构 基于效率的考虑,所有字段均不能为空,即全部`NOT NULL`,可以设置默认值来代替。 预计不会存储非负数的字段,例如各项id、统计数等,必须设置为`UNSIGNED`类型。`UNSIGNED`类型比`非UNSIGNED`类型所能存储的正整数范围大一倍,因此能获得更大的数值存储空间。 储开关、选项数据的字段,通常使用`tinyint(1)`非UNSIGNED类型,少数情况也可能使用`enum()`结果集的方式。`tinyint`作为开关字段时,通常`1为打开;0为关闭;-1为特殊数据,例如N/A(不可用),高于1的为特殊结果或开关二进制数组合`。 任何类型的数据表,字段空间应当本着足够用,不浪费的原则。MEMORY/HEAP类型的表中,尤其要注意规划节约使用存储空间,这将节约更多内存。 ## SQL语句 所有`SQL`语句中,除了表名、字段名称以外,全部语句和函数均需大写,应当杜绝小写方式或大小写混杂的写法。例如`SELECT * FROM ims_members`; 很长的`SQL`语句应当有适当的断行,依据`JOIN、FROM、ORDER BY`等关键字进行界定。 通常情况下,在对多表进行操作时,要根据不同表名称,对每个表指定一个`1~2`个字母的缩写,以利于语句简洁和可读性。 ## 运算与检索 数值运算一般比字符串运算更快。例如比较运算,可在单一运算中对数进行比较。而串运算涉及几个逐字节的比较,如果串更长的话,这种比较还要多。 如果串列的值数目有限,应该利用`普通整型`或`emum类型`来获得数值运算的优越性。 更小的字段类型永远比更大的字段类型处理要快得多。对于字符串,其处理时间与串长度直接相关。一般情况下,较小的表处理更快。对于定长表,应该选择最小的类型,只要能存储所需范围的值即可。例如,如果`mediumint`够用,就不要选择`bigint`。对于可变长类型,也仍然能够节省空间。一个`TEXT` 类型的值用2 字节记录值的长度,而一个`LONGTEXT` 则用4字节记录其值的长度。如果存储的值长度永远不会超过64KB,使用TEXT 将使每个值节省2字节。 ## 性能优化 主要分为:`表结构优化`,`索引优化`,`查询优化`。取决于开发人员经验和个人能力。不详述。