ข้ามไปที่เนื้อหา

S4 — eMediation — Data Dictionary (Target DELTA)

TARGET DESIGN — เฉพาะ DELTA

พจนานุกรมข้อมูล เฉพาะตาราง NEW + คอลัมน์ MODIFY ตาม schema.sql — ยังไม่ลงฐานข้อมูลจริง · ตาราง REUSE (95 ตาราง cms_* เดิม) ดูที่ live docs ../../s4_mediation/data_dict.md · ดู er_diagram.md · index.md

Convention ร่วมทุกตาราง (ละไว้ในตารางย่อยเพื่อความกระชับ): status varchar(30) · highlight bit · orderid int · audit septet created_at datetime2 · created_by int · created_ip varchar(50) · updated_at datetime2 · updated_by int · updated_ip varchar(50) Append-only logs (cms_wf_audit) ไม่มี updated_* · PII (🔒): idcard (เลขบัตร 13 หลัก), ชื่อ-นามสกุล, bank, signature, ไฟล์แนบ → เข้ารหัส at-rest AES-256 [NFR] 🔑 = PK · FK ระบุปลายทาง · ตาราง NEW ทุกตัวเป็น MEDIATE.cms_*


A1 — Workflow Engine [REQ-MED-007]

cms_wf_approval_level — สาย 7 ระดับอนุมัติ

คอลัมน์ ชนิด คำอธิบาย
wf_approval_level_id 🔑 int IDENTITY PK
lvl tinyint UNIQUE, CHECK 1–7 ระดับ (1=ต่ำสุด..7=อธิบดี)
role_code varchar(30) map role (บางระดับ null เช่น หน้าห้อง)
label nvarchar(100) ป้ายไทย

cms_wf_request_type — ประเภทคำขอเข้า workflow (7 ชนิด)

คอลัมน์ ชนิด คำอธิบาย
wf_request_type_id 🔑 int IDENTITY PK
code varchar(40) UNIQUE 'center-registration','compensation-claim',...
label nvarchar(200) ชื่อไทย
req_ref varchar(20) 'REQ-MED-003'
subject_entity varchar(40) ตารางต้นเรื่อง

cms_wf_definition — นิยาม workflow (header)

คอลัมน์ ชนิด คำอธิบาย
wf_definition_id 🔑 int IDENTITY PK
code varchar(40) UNIQUE 'wf-center-reg'
wf_request_type_id int FK→cms_wf_request_type ประเภทคำขอ
title nvarchar(200) ชื่อ workflow
req_ref varchar(20) REQ ref
is_active / version bit / int เปิดใช้ / เวอร์ชัน

cms_wf_step — ขั้นตอนใน workflow

คอลัมน์ ชนิด คำอธิบาย
wf_step_id 🔑 int IDENTITY PK
wf_definition_id int FK→cms_wf_definition นิยามแม่
seq int (UNIQUE กับ def) ลำดับขั้น
name nvarchar(200) ชื่อขั้น
approver_kind / approver_value varchar(20) / varchar(30) 'role' / role_code
is_skippable bit ข้ามได้ (ต้องมีเหตุผล)
is_terminal bit จบที่ขั้นนี้ ไม่ escalate
sla_hours int SLA ชั่วโมง (0=ทันที)

cms_wf_instance — คำขอจริง 1 ใบ = 1 instance

คอลัมน์ ชนิด คำอธิบาย
wf_instance_id 🔑 int IDENTITY PK
code varchar(30) UNIQUE 'WF-2569-0001'
wf_definition_id int FK→cms_wf_definition นิยามที่ใช้
wf_request_type_id int FK→cms_wf_request_type ประเภท (denorm filter)
subject_table / subject_id varchar(40) / int ต้นเรื่อง (polymorphic ไม่มี FK)
subject_title 🔒 nvarchar(300) ข้อความอ่านง่าย
province_id int FK→cms_geo_province scope จังหวัด
submitted_by / submitted_name int FK→cms_users / nvarchar(200) ผู้ยื่น
current_step_seq int ขั้นที่ active (null=จบ)
status varchar(20) CHECK in_progress/approved/returned/rejected/cancelled
started_at / closed_at datetime2 เริ่ม/ปิด

cms_wf_instance_step — สถานะ+ผลรายขั้น

คอลัมน์ ชนิด คำอธิบาย
wf_instance_step_id 🔑 int IDENTITY PK
wf_instance_id int FK→cms_wf_instance instance แม่
seq int (UNIQUE กับ instance) ตรงกับ cms_wf_step.seq
status varchar(20) CHECK pending/current/done/skipped/returned
actor_user_id / actor_name int FK→cms_users / nvarchar(200) ผู้กระทำ
acted_at datetime2 เวลา
comment nvarchar(max) ความเห็น
skip_reason nvarchar(500) บังคับเมื่อ skipped

cms_wf_task — กล่องงานรออนุมัติ (inbox)

คอลัมน์ ชนิด คำอธิบาย
wf_task_id 🔑 int IDENTITY PK
code varchar(20) UNIQUE 'T-001'
wf_instance_id int FK→cms_wf_instance instance
step_seq int ขั้นที่อ้างถึง
assignee_kind / assignee_value varchar(20) / varchar(30) 'role'
subject_title / province_id nvarchar(300) / int denorm
priority varchar(20) CHECK normal/high/urgent
due_at datetime2 กำหนดเสร็จ
status varchar(20) CHECK pending/done/reassigned/cancelled

cms_wf_delegation — มอบอำนาจ (รักษาการแทน)

คอลัมน์ ชนิด คำอธิบาย
wf_delegation_id 🔑 int IDENTITY PK
code varchar(20) UNIQUE 'DG-1'
from_user_id / from_name / from_role / from_level int FK / nvarchar / varchar / tinyint ผู้มอบ
acts_for_user_id / acts_for_name / acts_for_role / acts_for_level int FK / nvarchar / varchar / tinyint ผู้ถูกแทน
scope_request_type varchar(40) จำกัดเฉพาะประเภท (null=ทุก)
date_start / date_end datetime2 ช่วงเวลา
reason nvarchar(500) เหตุผล
status varchar(20) CHECK active/expired/revoked
approved_by / approved_at int FK→cms_users / datetime2 admin อนุมัติ

cms_wf_audit — audit trail workflow (append-only)

คอลัมน์ ชนิด คำอธิบาย
wf_audit_id 🔑 bigint IDENTITY PK
code varchar(20) 'A-001'
wf_instance_id int FK→cms_wf_instance null=system/config
ts datetime2 เวลา
actor_user_id / actor_name / actor_role int / nvarchar / varchar ผู้กระทำ
action varchar(20) CHECK create/approve/return/skip/delegate/config/reject/cancel
detail nvarchar(max) รายละเอียด
created_ip varchar(50) IP (ไม่มี updated_)*

A2 — Assessment Committee [REQ-MED-004]

cms_assessment_committee_role — บทบาทกรรมการ (master)

คอลัมน์ ชนิด คำอธิบาย
assessment_committee_role_id 🔑 int IDENTITY PK
role_key varchar(20) UNIQUE chair/secretary/member/asst_secy
title / short_title nvarchar(150) / nvarchar(50) ชื่อบทบาท
min_count / max_count int / int จำนวนขั้นต่ำ/สูงสุด

cms_assessment_committee — คณะกรรมการ 1 ชุด (ศูนย์×ปี)

คอลัมน์ ชนิด คำอธิบาย
assessment_committee_id 🔑 int IDENTITY PK
code varchar(30) UNIQUE 'CMT-{centerId}-{year}'
people_center_id int FK→cms_people_center ศูนย์
assessment_year int (UNIQUE กับ center) ปี พ.ศ.
wf_instance_id int FK→cms_wf_instance สายแต่งตั้ง
order_no varchar(50) เลขคำสั่ง (null=ยังไม่แต่งตั้ง)
appointed_date datetime2 วันแต่งตั้ง
status varchar(30) CHECK รอแต่งตั้งกรรมการ/แต่งตั้งกรรมการแล้ว/ยกเลิก

cms_assessment_committee_member — สมาชิกกรรมการ

คอลัมน์ ชนิด คำอธิบาย
assessment_committee_member_id 🔑 int IDENTITY PK
assessment_committee_id int FK→cms_assessment_committee คณะแม่
role_key varchar(20) FK→cms_assessment_committee_role บทบาท
prefix_name / firstname / lastname 🔒 nvarchar ชื่อ
idcard 🔒 varchar(20) เลขบัตร
org / position nvarchar(200) สังกัด/ตำแหน่ง
is_external bit กรรมการภายนอก
photo_ext varchar(20) รูป

A3 — Exam / Question Bank [REQ-MED-001]

cms_exam_question — คลังข้อสอบ

คอลัมน์ ชนิด คำอธิบาย
exam_question_id 🔑 int IDENTITY PK
code varchar(20) 'Q01'
category nvarchar(100) กฎหมายไกล่เกลี่ย/จรรยาบรรณ/กระบวนการ/ทักษะสื่อสาร/กรณีศึกษา
question nvarchar(max) โจทย์
choice1–4 nvarchar(500) ตัวเลือก (3,4 nullable)
answer_index tinyint CHECK 0–3 คำตอบถูก (0-based)

cms_exam — นิยามชุดข้อสอบ/รอบสอบ

คอลัมน์ ชนิด คำอธิบาย
exam_id 🔑 int IDENTITY PK
code varchar(30) 'PRE-CRS001'
title nvarchar(200) ชื่อชุดสอบ
training_topic_id int FK→cms_training_topic หลักสูตร
exam_type varchar(10) CHECK pre/post
pass_pct int เกณฑ์ผ่าน % (60/70)
question_count int จำนวนข้อสุ่ม
duration_min int เวลา (นาที)
max_attempts int retake ≤ 3
status varchar(30) CHECK เปิดสอบ/ปิดสอบ

cms_exam_attempt — บันทึกการนั่งสอบ

คอลัมน์ ชนิด คำอธิบาย
exam_attempt_id 🔑 int IDENTITY PK
code varchar(20) 'ATT-001'
exam_id int FK→cms_exam ชุดสอบ
training_register_id int FK→cms_training_register ผู้สอบ
sitting_name 🔒 nvarchar(200) snapshot ชื่อ
attempt_no int (UNIQUE exam+reg+no) ครั้งที่ 1..max
score / total int คะแนน/เต็ม
pass bit derived ≥ pass_pct
answers_json nvarchar(max) คำตอบรายข้อ
sat_at datetime2 เวลาสอบ

A4 — Trainer Evaluation master [REQ-MED-001]

cms_trainer_eval_category — หมวดประเมินวิทยากร (5 หมวด)

คอลัมน์ ชนิด คำอธิบาย
trainer_eval_category_id 🔑 int IDENTITY PK
code / title varchar(10) / nvarchar(200) 'C1' / ชื่อหมวด

cms_trainer_eval_subject — หัวข้อย่อย (11 วิชา)

คอลัมน์ ชนิด คำอธิบาย
trainer_eval_subject_id 🔑 int IDENTITY PK
code varchar(10) 'S01'
trainer_eval_category_id int FK→cms_trainer_eval_category หมวดแม่
title nvarchar(300) ชื่อวิชา

A5 — Document Template [REQ-MED-011]

cms_document_template — Template เอกสาร Dynamic

คอลัมน์ ชนิด คำอธิบาย
document_template_id 🔑 int IDENTITY PK
code varchar(30) รหัส
master_document_type_id int FK→cms_master_document_type ประเภทเอกสาร
title nvarchar(200) ชื่อ template
body nvarchar(max) HTML + placeholder
variables_json nvarchar(max) นิยามตัวแปร (JSON)
version / is_active int / bit เวอร์ชัน/เปิดใช้
status varchar(30) ฉบับร่าง/เผยแพร่

A6 — Center Process Cost [REQ-MED-015]

cms_center_process_cost — เบิกค่าจัดกระบวนการ (header)

คอลัมน์ ชนิด คำอธิบาย
center_process_cost_id 🔑 int IDENTITY PK
code varchar(30) UNIQUE เลขคำร้อง
people_center_id int FK→cms_people_center ศูนย์
mediation_id int FK→cms_mediation เคสอ้างอิง
fiscal_year int ปีงบ (ต.ค.–ก.ย.)
total_amount / budget_ceiling decimal(12,2) ยอดรวม/เพดาน
wf_instance_id int FK→cms_wf_instance สาย 7 ระดับ
status varchar(30) คำร้องใหม่/...

cms_center_process_cost_item — รายการค่าใช้จ่าย

คอลัมน์ ชนิด คำอธิบาย
center_process_cost_item_id 🔑 int IDENTITY PK
center_process_cost_id int FK→cms_center_process_cost header
item_type nvarchar(100) สถานที่/อาหารว่าง/วัสดุ/จัดทำเอกสาร
detail / amount nvarchar(300) / decimal(12,2) รายละเอียด/จำนวน
receipt_ext varchar(20) ใบเสร็จ (PDF/JPG ≤10MB)

A7 — Award / Model Org [REQ-MED-016]

cms_award_criteria — เกณฑ์รางวัล (รายปีงบ น้ำหนักรวม 100%)

คอลัมน์ ชนิด คำอธิบาย
award_criteria_id 🔑 int IDENTITY PK
fiscal_year int ปีงบ
title nvarchar(300) ชื่อเกณฑ์
weight int น้ำหนัก % (รวมทั้งปี=100)
detail nvarchar(max) รายละเอียด

cms_center_award — ผลรางวัล/องค์กรต้นแบบ

คอลัมน์ ชนิด คำอธิบาย
center_award_id 🔑 int IDENTITY PK
people_center_id int FK→cms_people_center ศูนย์ (UNIQUE กับ year)
fiscal_year int ปีงบ
total_score decimal(6,2) คะแนนรวม
award_level nvarchar(100) ดีเด่น/ต้นแบบ/ชมเชย
cert_no / cert_ext varchar(30) / varchar(20) เลข/ไฟล์ใบประกาศ (PDF)
qr_token varchar(100) token QR verify
issued_date datetime2 วันออก

A8 — Integration Settings [REQ-MED-008]

cms_integration_setting — เปิด/ปิดเชื่อมต่อระบบภายนอก

คอลัมน์ ชนิด คำอธิบาย
integration_setting_id 🔑 int IDENTITY PK
system_name nvarchar(200) ThaID/K-COP/ETDA/...
category nvarchar(100) ยืนยันตัวตน/เบิกจ่าย/ลงนาม/...
protocol / endpoint varchar(50) / varchar(300) OAuth/REST · URL
owner nvarchar(200) หน่วยงานเจ้าของ
enabled bit เปิด/ปิด
last_sync datetime2 sync ล่าสุด
config_json 🔒 nvarchar(max) client_id ฯลฯ (secret → vault)

A9 — Online Mediation / Webex + eKYC + eSign [REQ-MED-005] (migrate จาก V2 MySQL)

ค้นพบจาก source V2 จริง (mediation-backend2025/models/*, Sequelize/MySQL) — subsystem ไกล่เกลี่ยออนไลน์ Phase-1 ที่ไม่อยู่ใน cms_* MSSQL · ตารางเหล่านี้คือปลายทาง migrate เข้า MEDIATE

cms_online_meeting — ห้องไกล่เกลี่ยออนไลน์ (V2 meetings)

คอลัมน์ ชนิด คำอธิบาย
online_meeting_id 🔑 int IDENTITY PK
code varchar(40) meeting_id (V2)
mediation_id int FK→cms_mediation เคส (V2 request_id)
category / subject nvarchar หมวด/หัวข้อ
link_url varchar(500) ลิงก์ห้อง
start_date/end_date/start_time/end_time date/time ช่วงเวลา
webex_meeting_id/number/host_id/host_email/type varchar Webex meta
webex_meeting_password 🔒 varchar(100) แนะนำย้าย vault
mediation_final_status varchar(30) ผลไกล่เกลี่ย
result nvarchar(max) สรุปผล
meeting_status varchar(30) นัดหมาย/...

cms_meeting_attendance — ผู้เข้าร่วม + eKYC (V2 meetingAttendances)

คอลัมน์ ชนิด คำอธิบาย
meeting_attendance_id 🔑 int IDENTITY PK
online_meeting_id int FK→cms_online_meeting ห้อง
mediation_id int FK→cms_mediation เคส
attendee_prefix/firstname/lastname 🔒 nvarchar ชื่อผู้เข้าร่วม
attendee_phone / attendee_type varchar(20) / varchar(30) เบอร์/ประเภท (คู่กรณี/ผู้ไกล่เกลี่ย/พยาน)
attendance_date/time date/time เวลาเข้าร่วม
verify_status / ekyc_id 🔒 varchar สถานะ/รหัส eKYC (ThaID)
attendee_address/sub_district/district/province/zipcode nvarchar ที่อยู่

cms_meeting_signature — ลายเซ็น eSign (V2 signatures+signs)

คอลัมน์ ชนิด คำอธิบาย
meeting_signature_id 🔑 int IDENTITY PK
online_meeting_id int FK→cms_online_meeting ห้อง
mediation_id int FK→cms_mediation เคส
meeting_attendance_id int FK→cms_meeting_attendance ผู้ลงนาม
idcard 🔒 varchar(20) เลขบัตร
attendee_type varchar(30) ประเภทผู้ลงนาม
signature_ext varchar(20) ไฟล์ลายเซ็น (BLOB เดิม→ไฟล์)
sign_status / signed_at varchar(30) / datetime2 ลงนามแล้ว/รอ

cms_webex_auth — Webex OAuth token (V2 webex_auths)

คอลัมน์ ชนิด คำอธิบาย
webex_auth_id 🔑 int IDENTITY PK
access_token / refresh_token 🔒 nvarchar(max) token (แนะนำ vault)
expires_at datetime2 หมดอายุ

cms_meeting_report — รายงาน/บันทึกข้อตกลงออนไลน์ (V2 meetingReports+meeting_memos)

คอลัมน์ ชนิด คำอธิบาย
meeting_report_id 🔑 int IDENTITY PK
online_meeting_id int FK→cms_online_meeting ห้อง
mediation_id int FK→cms_mediation เคส
report_type varchar(30) report/memo
mediation_center_name / mediation_date nvarchar / date ศูนย์/วันที่
requester_fullname / respondant_fullname 🔒 nvarchar(200) คู่กรณี
subject / content / result nvarchar(max) หัวข้อ/เนื้อหา/ผล
mediation_final_status / report_status varchar(30) สถานะ

A10 — System Audit Trail [REQ-MED-007 / NFR]

cms_system_audit — ตรวจสอบระบบ (append-only — backing จอ system_audit)

คอลัมน์ ชนิด คำอธิบาย
system_audit_id 🔑 bigint IDENTITY PK
ts datetime2 เวลา
user_id / actor_name / actor_role int FK→cms_users / nvarchar / varchar ผู้กระทำ
action varchar(50) create/update/delete/login/export/...
module nvarchar(100) โมดูล/เมนู
target_table / target_id varchar(60) / varchar(40) ตาราง+PK เป้าหมาย
detail nvarchar(max) before/after (JSON) ตาม NFR
ip varchar(50) IP
result varchar(20) CHECK success/fail (ไม่มี updated_)*

B — MODIFY (คอลัมน์เพิ่มในตารางเดิม)

ตาราง (REUSE) คอลัมน์เพิ่ม ชนิด REQ คำอธิบาย
cms_training_register stage varchar(20) 013 'สมัครอบรม'(รอบ1)/'ขึ้นทะเบียน'(รอบ2)
pre_member_no varchar(20) 013 'PRE-YYYY-NNNN' บัญชีชั่วคราว
selection_result varchar(30) 013 ผ่าน/ไม่ผ่าน/รอประกาศผล (derived)
cms_user_role kind varchar(20) CHECK 007 'ระบบ'/'เฉพาะกิจ'
base_role_id int 007 clone permission
note nvarchar(500) 007 เหตุผล role เฉพาะกิจ
cms_people_center consecutive_fails int 010 ประเมินไม่ผ่านติดกัน (≥2→ยุติ)
is_model_org / model_org_year bit / int 016 องค์กรต้นแบบ
cms_master_assessment_category weight int 004 น้ำหนัก % (20/20/25/35)
indicators int 004 จำนวนตัวชี้วัด
cms_news publish_state / scheduled_at varchar(20) / datetime2 008 ฉบับร่าง/เผยแพร่ + กำหนดเผยแพร่
attachment_ext / category varchar(50) / nvarchar(100) 008 ไฟล์แนบ/หมวด
cms_people_center_announcement publish_state / scheduled_at / announcement_type varchar / datetime2 / nvarchar 008 draft→publish
cms_mediation all_parties_replied_date datetime2 005 วันที่ทุกฝ่ายตอบกลับครบ (บังคับ)
cms_mediation_books signed_by_all / sign_method bit / varchar(20) CHECK 005 thaid/manual
esign_at / manual_sign_json datetime2 / nvarchar(max) 005 eSign / รายละเอียดลงนามมือ