16 lines
1.5 KiB
SQL
16 lines
1.5 KiB
SQL
-- File: database/migrations/phase_6a_workflow_dsl.sql
|
|
-- ตารางสำหรับเก็บนิยามของ Workflow (Workflow Definition)
|
|
CREATE TABLE workflow_definitions (
|
|
id CHAR(36) NOT NULL PRIMARY KEY COMMENT 'UUID ของ Workflow Definition',
|
|
workflow_code VARCHAR(50) NOT NULL COMMENT 'รหัส Workflow เช่น RFA, CORR, CIRCULATION',
|
|
version INT NOT NULL DEFAULT 1 COMMENT 'หมายเลข Version',
|
|
dsl JSON NOT NULL COMMENT 'นิยาม Workflow ต้นฉบับ (YAML/JSON Format)',
|
|
compiled JSON NOT NULL COMMENT 'โครงสร้าง Execution Tree ที่ Compile แล้ว',
|
|
is_active BOOLEAN DEFAULT TRUE COMMENT 'สถานะการใช้งาน',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMMENT 'วันที่สร้าง',
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT 'วันที่แก้ไขล่าสุด',
|
|
-- ป้องกันการมี Workflow Code และ Version ซ้ำกัน
|
|
UNIQUE KEY uq_workflow_version (workflow_code, version)
|
|
) ENGINE = InnoDB DEFAULT CHARSET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = 'ตารางเก็บนิยามกฎการเดินเอกสาร (Workflow DSL)';
|
|
-- สร้าง Index สำหรับการค้นหา Workflow ที่ Active ล่าสุดได้เร็วขึ้น
|
|
CREATE INDEX idx_workflow_active ON workflow_definitions(workflow_code, is_active, version); |