silentbalanceyh/vertx-zero

View on GitHub
vertx-pin/zero-ambient/src/main/resources/plugin/sql/ambient/X_ATTACHMENT.sql

Summary

Maintainability
Test Coverage
-- liquibase formatted sql

-- changeset Lang:ox-attachment-1
DROP TABLE IF EXISTS X_ATTACHMENT;
CREATE TABLE IF NOT EXISTS X_ATTACHMENT
(
    `KEY`            VARCHAR(36) COMMENT '「key」- 附件的ID值',
    `NAME`           VARCHAR(255) COMMENT '「name」- 文件名(带扩展名)',
    `EXTENSION`      VARCHAR(10) COMMENT '「extension」- 文件扩展名',
    -- 文件管理专用
    `TYPE`           VARCHAR(128) COMMENT '「type」- 文件类型,直接关联zero.file.tree类型',

    `MIME`           VARCHAR(128) COMMENT '「mime」- 该文件的MIME类型',
    `SIZE`           INTEGER COMMENT '「size」- 该文件的尺寸',

    `STATUS`         VARCHAR(12) COMMENT '「status」- 状态,PROGRESS / SUCCESS',
    /*
     * 附件存储方式说明
     * - storeWay
     *   BLOB:直接存储在数据库中(二进制格式)
     *   FILE:上传到直接运行的服务器中,直接上传
     *   REMOTE:远程集成
     *
     * 只有当 storeWay = REMOTE 时会执行远程同步
     * - storeId:对应 Integration 中存储的相关集成配置信息
     * - storePath:远程存储文件的根地址,如:/root/txt 这种(不带协议和服务器部分)
     * - storeUri:远程存储文件转换的URI地址,主要用于网络访问
     */
    `DIRECTORY_ID`   VARCHAR(36) COMMENT '「directoryId」- 文件存储所属目录',
    `STORE_WAY`      VARCHAR(12) COMMENT '「storeWay」- 存储方式,BLOB / FILE / REMOTE',
    `STORE_PATH`     VARCHAR(1024) COMMENT '「storePath」- 远程存储的目录信息(显示专用,去服务器和协议部分)',
    `STORE_URI`      VARCHAR(1024) COMMENT '「storeUri」- 远程存储的目录URI部分',

    -- 关联模型信息
    `MODEL_ID`       VARCHAR(255) COMMENT '「modelId」- 关联的模型identifier,用于描述',
    `MODEL_KEY`      VARCHAR(36) COMMENT '「modelKey」- 关联的模型记录ID,用于描述哪一个Model中的记录',
    `MODEL_CATEGORY` VARCHAR(36) COMMENT '「modelCategory」- 如果一个模型记录包含多种附件,则需要设置模型相关字段,等价于 field',

    -- 原始文件相关信息
    `FILE_NAME`      VARCHAR(255) COMMENT '「fileName」- 原始文件名(不带扩展名)',
    `FILE_KEY`       VARCHAR(255) COMMENT '「fileKey」- TPL模式中的文件唯一的key(全局唯一)',
    `FILE_URL`       VARCHAR(255) COMMENT '「fileUrl」- 该文件的下载链接(全局唯一)',
    `FILE_PATH`      VARCHAR(255) COMMENT '「filePath」- 该文件的存储地址,FILE时使用', -- Vert.x 中的地址规范

    -- 特殊字段
    `ACTIVE`         BIT         DEFAULT NULL COMMENT '「active」- 是否启用',
    `SIGMA`          VARCHAR(32) DEFAULT NULL COMMENT '「sigma」- 统一标识',
    `METADATA`       TEXT COMMENT '「metadata」- 附加配置',
    `LANGUAGE`       VARCHAR(8)  DEFAULT NULL COMMENT '「language」- 使用的语言',

    -- Auditor字段
    `CREATED_AT`     DATETIME COMMENT '「createdAt」- 创建时间',
    `CREATED_BY`     VARCHAR(36) COMMENT '「createdBy」- 创建人',
    `UPDATED_AT`     DATETIME COMMENT '「updatedAt」- 更新时间',
    `UPDATED_BY`     VARCHAR(36) COMMENT '「updatedBy」- 更新人',
    PRIMARY KEY (`KEY`) USING BTREE
);

-- changeset Lang:ox-attachment-2
ALTER TABLE X_ATTACHMENT
    ADD UNIQUE (`FILE_KEY`) USING BTREE;
ALTER TABLE X_ATTACHMENT
    ADD UNIQUE (`FILE_URL`) USING BTREE;
ALTER TABLE X_ATTACHMENT
    ADD UNIQUE (`FILE_PATH`) USING BTREE;