1) 建表示例（统一规范，前缀 `hot_`）
CREATE TABLE `hot_xxx_example`
(
    `id`                  BIGINT UNSIGNED NOT NULL AUTO_INCREMENT COMMENT '主键',
    `company_id`          BIGINT UNSIGNED NULL COMMENT '公司ID（由应用层保证必填）',

    -- 业务字段（根据实际场景补充）
    `name`                VARCHAR(100)    NULL COMMENT '名称（应用层校验必填）',
    `status`              TINYINT         NULL DEFAULT 1 COMMENT '状态：1=正常 0=禁用',

    -- 固定审计字段
    `create_dept`         BIGINT                   NULL COMMENT '创建部门',
    `create_by`           BIGINT                   NULL COMMENT '创建者',
   `create_by_name`      VARCHAR(64)              NULL COMMENT '创建者姓名',
    `create_time`         DATETIME        NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    `update_by`           BIGINT                   NULL COMMENT '更新者',
   `update_by_name`      VARCHAR(64)              NULL COMMENT '更新者姓名',
    `update_time`         DATETIME        NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '更新时间',
    `is_deleted`          TINYINT         NULL DEFAULT 0 COMMENT '0=正常, 1=已删除',

    PRIMARY KEY (`id`),
    KEY `idx_company_id` (`company_id`)
) ENGINE = InnoDB
  DEFAULT CHARSET = utf8mb4
  COLLATE = utf8mb4_general_ci COMMENT ='示例业务表';

2) 固定字段说明（所有业务表必须包含）
    - `id`：BIGINT UNSIGNED 主键，自增
    - `company_id`：BIGINT UNSIGNED 非空，多租户分隔标识
    - `create_dept`：BIGINT，可空，创建部门
    - `create_by`：BIGINT，可空，创建者
    - `create_time`：DATETIME 非空，默认 `CURRENT_TIMESTAMP`
    - `update_by`：BIGINT，可空，更新者
    - `update_time`：DATETIME 非空，默认 `CURRENT_TIMESTAMP` 且 `ON UPDATE CURRENT_TIMESTAMP`
    - `is_deleted`：TINYINT 非空，逻辑删除标志（0=正常 1=删除）

3) 其他规范要点
    - 命名规范：下划线蛇形命名（如 `hot_module_entity`），字段必须有 COMMENT
    - 索引规范：公共检索字段需建索引；命名 `idx_字段名`，唯一键命名 `uk_字段名`
    - 字段类型：布尔/枚举用 `TINYINT`；文本优先 `VARCHAR(<=255)`，长文本用 `TEXT`；URL 用 `VARCHAR(500~1024)`
    - 非空约束：默认尽量允许 `NULL`，仅主键保持 `NOT NULL`；其他字段改由应用层进行必填校验；如需默认行为，优先使用 `DEFAULT` 而非强制 `NOT NULL`
    - 字符集/排序：统一 `utf8mb4` + `utf8mb4_general_ci`；存储引擎统一 `InnoDB`
    - 外键约束：默认不使用外键（不建 `FOREIGN KEY`），由应用程序保证关联完整性；必要关联通过普通索引/唯一键保障查询与唯一性；禁用数据库级联删除/更新，统一使用逻辑删除与事务控制

4) 外键约束策略（统一约定）
    - 不创建数据库外键：跨库、跨表关联通过业务字段（如 `company_id`、`dept_id`、`user_id` 等）实现“逻辑外键”
    - 一致性保障：在应用层进行存在性校验、状态校验与事务控制；删除采用逻辑删除（`is_deleted=1`），避免外键级联导致不可控扩散
    - 性能与演进：通过为逻辑外键创建合适索引（如 `KEY idx_company_id(company_id)`）保证查询性能；避免外键带来的锁冲突与迁移复杂性
    - 唯一与约束：业务唯一性由唯一索引实现（如 `uk_phone`）；引用检查在服务层/DAO 层完成（查询验证、分布式事务或最终一致性策略）
