CREATE TABLE IF NOT EXISTS "pms_project" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(50) NOT NULL, "status" int NOT NULL DEFAULT 1, "type" int NOT NULL, "level" int NOT NULL, "description" text DEFAULT NULL, "open_status" bit NOT NULL DEFAULT TRUE, "icon" varchar(255) DEFAULT NULL, "sort" int DEFAULT NULL, "start_time" timestamp DEFAULT NULL, "end_time" timestamp DEFAULT NULL, "archive_time" timestamp DEFAULT NULL, "recycle_time" timestamp DEFAULT NULL, "access_time" timestamp DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_template" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(100) NOT NULL, "description" varchar(500) DEFAULT NULL, "project_type" int NOT NULL, "status" tinyint NOT NULL DEFAULT 0, "sort" int NOT NULL DEFAULT 0, "item_types" varchar(5000) NOT NULL, "statuses" varchar(10000) NOT NULL, "boards" varchar(10000) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_library_template" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(100) NOT NULL, "description" varchar(500) DEFAULT NULL, "cover_url" varchar(255) DEFAULT NULL, "status" tinyint NOT NULL DEFAULT 0, "sort" int NOT NULL DEFAULT 0, "documents" varchar(1000000) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_member" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "user_id" bigint NOT NULL, "level" tinyint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_group" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "user_id" bigint NOT NULL, "name" varchar(100) NOT NULL, "sort" int NOT NULL DEFAULT 0, "type" tinyint NOT NULL DEFAULT 3, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_group_relation" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "user_id" bigint NOT NULL, "group_id" bigint NOT NULL, "project_id" bigint NOT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_favorite" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "user_id" bigint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_project_announcement" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "content" text NOT NULL, "file_urls" varchar(5000) DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_iteration" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "name" varchar(100) NOT NULL, "owner_user_id" bigint DEFAULT NULL, "status" int NOT NULL DEFAULT 1, "start_time" timestamp DEFAULT NULL, "end_time" timestamp DEFAULT NULL, "finish_time" timestamp DEFAULT NULL, "target" varchar(255) DEFAULT NULL, "description" text DEFAULT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_status" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_type" int NOT NULL, "name" varchar(50) NOT NULL, "status_type" int NOT NULL, "description" varchar(255) DEFAULT NULL, "board_name" varchar(50) DEFAULT NULL, "system_code" varchar(20) DEFAULT NULL, "default_status" bit NOT NULL DEFAULT FALSE, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_board" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_type" int NOT NULL, "name" varchar(50) NOT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "type" int NOT NULL, "serial_number" int NOT NULL, "name" varchar(100) NOT NULL, "description" text DEFAULT NULL, "priority" int NOT NULL, "assignee_user_id" bigint DEFAULT NULL, "status_id" bigint NOT NULL, "status" int NOT NULL, "lifecycle_status" int NOT NULL DEFAULT 1, "archive_time" timestamp DEFAULT NULL, "recycle_time" timestamp DEFAULT NULL, "iteration_id" bigint DEFAULT NULL, "parent_id" bigint DEFAULT NULL, "related_requirement_id" bigint DEFAULT NULL, "defect_type" int DEFAULT NULL, "start_time" timestamp DEFAULT NULL, "end_time" timestamp DEFAULT NULL, "estimated_hours" int DEFAULT NULL, "progress" int NOT NULL DEFAULT 0, "file_urls" varchar(5000) DEFAULT NULL, "label_ids" varchar(5000) DEFAULT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_member" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_id" bigint NOT NULL, "user_id" bigint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_user_sort" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_id" bigint NOT NULL, "user_id" bigint NOT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id"), CONSTRAINT "uk_tenant_project_work_item_user_deleted" UNIQUE ("tenant_id", "project_id", "work_item_id", "user_id", "deleted") ); CREATE TABLE IF NOT EXISTS "pms_work_item_work_log" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_id" bigint NOT NULL, "actual_hours" int NOT NULL, "remaining_hours" int NOT NULL DEFAULT 0, "description" varchar(500) DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_label" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(50) NOT NULL, "color" varchar(20) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_comment" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "work_item_id" bigint NOT NULL, "user_id" bigint NOT NULL, "main_id" bigint NOT NULL DEFAULT 0, "reply_user_id" bigint DEFAULT NULL, "content" varchar(2000) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_work_item_activity" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "project_id" bigint NOT NULL, "work_item_id" bigint NOT NULL, "operator_user_id" bigint NOT NULL, "content" varchar(500) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_library" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(255) NOT NULL, "description" varchar(300) DEFAULT NULL, "open_status" bit NOT NULL DEFAULT FALSE, "cover_url" varchar(255) DEFAULT NULL, "status" int NOT NULL DEFAULT 1, "delete_user_id" bigint DEFAULT NULL, "delete_time" timestamp DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_library_member" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "user_id" bigint DEFAULT NULL, "dept_id" bigint DEFAULT NULL, "level" int NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_folder" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "permission_id" bigint NOT NULL, "parent_id" bigint NOT NULL DEFAULT 0, "title" varchar(255) NOT NULL, "status" int NOT NULL DEFAULT 1, "delete_user_id" bigint DEFAULT NULL, "delete_time" timestamp DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_document" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "permission_id" bigint NOT NULL, "folder_id" bigint NOT NULL DEFAULT 0, "parent_id" bigint NOT NULL DEFAULT 0, "title" varchar(255) NOT NULL, "content" text DEFAULT NULL, "type" int NOT NULL, "file_type" varchar(50) DEFAULT NULL, "file_size" bigint DEFAULT NULL, "status" int NOT NULL DEFAULT 1, "label_ids" varchar(5000) DEFAULT NULL, "delete_user_id" bigint DEFAULT NULL, "delete_time" timestamp DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_content_permission" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "open_status" bit NOT NULL DEFAULT TRUE, "open_level" tinyint NOT NULL DEFAULT 3, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_content_permission_member" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "permission_id" bigint NOT NULL, "user_id" bigint DEFAULT NULL, "dept_id" bigint DEFAULT NULL, "level" tinyint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_document_comment" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "document_id" bigint NOT NULL, "user_id" bigint NOT NULL, "main_id" bigint NOT NULL DEFAULT 0, "reply_user_id" bigint DEFAULT NULL, "content" varchar(2000) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_recycle_record" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "type" int NOT NULL, "entity_id" bigint NOT NULL, "name" varchar(255) NOT NULL, "delete_user_id" bigint NOT NULL, "delete_time" timestamp NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_tenant_type_entity" ON "pms_knowledge_recycle_record" ("tenant_id", "type", "entity_id"); CREATE INDEX IF NOT EXISTS "idx_tenant_delete_time_id" ON "pms_knowledge_recycle_record" ("tenant_id", "delete_time", "id"); CREATE INDEX IF NOT EXISTS "idx_tenant_library_delete_time" ON "pms_knowledge_recycle_record" ("tenant_id", "library_id", "delete_time"); CREATE INDEX IF NOT EXISTS "idx_tenant_delete_user_type" ON "pms_knowledge_recycle_record" ("tenant_id", "delete_user_id", "type"); CREATE TABLE IF NOT EXISTS "pms_knowledge_favorite" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "type" int NOT NULL, "entity_id" bigint NOT NULL, "user_id" bigint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_favorite_tenant_user_create_time_id" ON "pms_knowledge_favorite" ("tenant_id", "user_id", "create_time", "id"); CREATE INDEX IF NOT EXISTS "idx_favorite_tenant_user_library_create_time_id" ON "pms_knowledge_favorite" ("tenant_id", "user_id", "library_id", "create_time", "id"); CREATE INDEX IF NOT EXISTS "idx_favorite_tenant_user_type_entity" ON "pms_knowledge_favorite" ("tenant_id", "user_id", "type", "entity_id"); CREATE INDEX IF NOT EXISTS "idx_favorite_tenant_library" ON "pms_knowledge_favorite" ("tenant_id", "library_id"); CREATE INDEX IF NOT EXISTS "idx_favorite_tenant_type_entity" ON "pms_knowledge_favorite" ("tenant_id", "type", "entity_id"); CREATE TABLE IF NOT EXISTS "pms_knowledge_document_like" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "document_id" bigint NOT NULL, "user_id" bigint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_like_tenant_document_create_time" ON "pms_knowledge_document_like" ("tenant_id", "document_id", "create_time"); CREATE INDEX IF NOT EXISTS "idx_like_tenant_user_document" ON "pms_knowledge_document_like" ("tenant_id", "user_id", "document_id"); CREATE TABLE IF NOT EXISTS "pms_knowledge_view_record" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "library_id" bigint NOT NULL, "type" int NOT NULL, "entity_id" bigint NOT NULL, "user_id" bigint NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_view_tenant_user_create_time_id" ON "pms_knowledge_view_record" ("tenant_id", "user_id", "create_time", "id"); CREATE INDEX IF NOT EXISTS "idx_view_tenant_user_type_entity" ON "pms_knowledge_view_record" ("tenant_id", "user_id", "type", "entity_id"); CREATE INDEX IF NOT EXISTS "idx_view_tenant_library_create_time_id" ON "pms_knowledge_view_record" ("tenant_id", "library_id", "create_time", "id"); CREATE INDEX IF NOT EXISTS "idx_view_tenant_type_entity" ON "pms_knowledge_view_record" ("tenant_id", "type", "entity_id"); CREATE TABLE IF NOT EXISTS "pms_knowledge_document_share" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "document_id" bigint NOT NULL, "share_user_ids" varchar(5000) DEFAULT NULL, "token" varchar(64) NOT NULL, "status" tinyint NOT NULL DEFAULT 0, "close_user_id" bigint DEFAULT NULL, "close_time" timestamp DEFAULT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id"), UNIQUE ("token") ); CREATE INDEX IF NOT EXISTS "idx_share_tenant_document" ON "pms_knowledge_document_share" ("tenant_id", "document_id"); CREATE TABLE IF NOT EXISTS "pms_knowledge_document_label" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "name" varchar(255) NOT NULL, "color" varchar(20) NOT NULL, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE TABLE IF NOT EXISTS "pms_knowledge_group" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "user_id" bigint NOT NULL, "name" varchar(100) NOT NULL, "sort" int NOT NULL DEFAULT 0, "type" tinyint NOT NULL DEFAULT 3, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_group_tenant_user_type" ON "pms_knowledge_group" ("tenant_id", "user_id", "type"); CREATE INDEX IF NOT EXISTS "idx_group_tenant_user_sort" ON "pms_knowledge_group" ("tenant_id", "user_id", "sort"); CREATE TABLE IF NOT EXISTS "pms_knowledge_group_relation" ( "id" bigint NOT NULL GENERATED BY DEFAULT AS IDENTITY, "user_id" bigint NOT NULL, "group_id" bigint NOT NULL, "library_id" bigint NOT NULL, "sort" int NOT NULL DEFAULT 0, "creator" varchar(64) DEFAULT '', "create_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "updater" varchar(64) DEFAULT '', "update_time" timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP, "deleted" bit NOT NULL DEFAULT FALSE, "tenant_id" bigint NOT NULL DEFAULT 0, PRIMARY KEY ("id") ); CREATE INDEX IF NOT EXISTS "idx_group_relation_tenant_user_group_library" ON "pms_knowledge_group_relation" ("tenant_id", "user_id", "group_id", "library_id"); CREATE INDEX IF NOT EXISTS "idx_group_relation_tenant_user_library" ON "pms_knowledge_group_relation" ("tenant_id", "user_id", "library_id"); CREATE INDEX IF NOT EXISTS "idx_group_relation_tenant_library" ON "pms_knowledge_group_relation" ("tenant_id", "library_id");