5. 约束
主键的列数目不得超过阈值
英文名: NumOfPKColumnsExceed
规则描述: 限制主键中的列数目,以避免复杂的主键带来的性能问题。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 主键中的列数目超过了设定的阈值(如1)。
可配置: 是
案例: 表达式可以配置为 1
,表示主键最多只能有1列。
支持的数据库类型: 所有 (ALL)
主键列的数据类型限制
英文名: DataTypeLimitOfPrimaryKey
规则描述: 主键列的数据类型应当受到限制,通常推荐使用整数类型,以优化性能。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 主键列使用了非推荐的数据类型。
可配置: 是
案例: 表达式可以配置为 unsigned int/unsigned bigint
,表示主键列应当使用这些无符号整数类型。
支持的数据库类型: 所有 (ALL)
主键禁止使用自增列
英文名: IncColumn4PrimaryKeyDisallowed
规则描述: 禁止将自增属性应用于主键列,以避免潜在的数据完整性问题。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 主键列被定义为自增。
可配置: 是
案例: 表达式可以配置为 unsigned int/unsigned bigint
,表示不允许这些类型作为自增主键列。
支持的数据库类型: 所有 (ALL)
主键应使用自增列
英文名: IncColumn4PrimaryKeyRequired
规则描述: 鼓励在主键上使用自增属性,以简化数 据插入操作并保持主键的连续性。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE
触发条件: 主键未定义为自增。
可配置: 是
案例: 表达式可以配置为 unsigned int/unsigned bigint
,表示主键应当使用这些类型的自增属性。
支持的数据库类型: 所有 (ALL)
禁止创建外键
英文名: ForeignKeyDisallowed
规则描述: 禁止创建外键约束,因为外键会增加数据库操作的复杂性和性能开销。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE, ALTER TABLE ADD CONSTRAINT
触发条件: 创建或修改表时添加了外键约束。
可配置: 是
案例: 表达式可以配置为 0.8
,表示不允许创建外键。
支持的数据库类型: 所有 (ALL)
主外键的数据类型不一致
英文名: DiffDataTypesOfRIColumns
规则描述: 要求主键和对应的外键数据类型必须一致,以确保数据的完整性和一致性。
预警级别: 警告 (Warning)
审查对象: CREATE TABLE, ALTER TABLE ADD CONSTRAINT
触发条件: 主键和外键的数据类型不 一致。
可配置: 是
案例: 表达式可以配置为 0.8
,表示在创建或修改表时,主外键的数据类型必须一致。
支持的数据库类型: 所有 (ALL)
禁止使用CHECK约束
英文名: CreateCheckConstraintDisallowed
规则描述: 禁止使用CHECK约束,因为CHECK约束增加了数据库操作的复杂性和性能开销。
预警级别: 警告 (Warning)
审查对象: ALTER TABLE ADD CONSTRAINT
触发条件: 添加了CHECK约束。
可配置: 否
支持的数据库类型: 所有 (ALL)