跳到主要内容

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)