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

S4 — ฐานข้อมูล MySQL (Online Mediation / Webex / eSign) — current state

ฐานข้อมูลที่ 2 ของ S4 — แยกจาก MSSQL MEDIATE

ระบบ eMediation V2 (emediations.rlpd.go.th, เครื่อง 10.136.27.87) เป็น dual-DB: นอกจาก MSSQL MEDIATE (index, 95 ตาราง) ยังมี MySQL mediation@localhost:3306 (Sequelize) เก็บ subsystem ไกล่เกลี่ยออนไลน์ (Webex) + ยืนยันตัวตน eKYC + ลงนาม eSign ที่ Webify เพิ่มในเฟส 1 · backend เข้าถึงผ่าน API /model/:model/* (modelController.js) · ยังใช้งานจริง (ตรวจ 2026-06-17: signs/signatures มีข้อมูลเขียนวันนี้) และ ยังไม่ถูก migrate เข้า PSDBPRDDB · เป้าหมาย V3 (Phase 2) จะรวมเข้า MEDIATE — ดู design DELTA §A9

ภาพรวม

Metric Value
Engine / DB MySQL · mediation
Host 10.136.27.87:3306 (localhost บนเครื่อง V2)
ORM Sequelize (models/*.js, timestamps createdAt/updatedAt)
API /api/model/:model/{get,getall,find,findAll,create,update,delete}
Tables 21
Explicit FK 0 (เชื่อมด้วย meeting_id/request_id/idcard แบบ string)
สถานะ live — ยังไม่ migrate เข้า single DB

การเชื่อมกับ MSSQL MEDIATE

request_id ในตารางเหล่านี้ = อ้างถึงเคสไกล่เกลี่ย (cms_mediation) ฝั่ง MSSQL · MSSQL ก็มี cms_mediation_booking_online (14 คอลัมน์) อยู่แล้ว — ตอนรวม V3 ต้อง reconcile กับตารางกลุ่มนี้

สถานะการใช้งานจริง (row count + ความสด — probe 2026-06-17)

สถานะ ตาราง rows ล่าสุด หมายเหตุ
🟢 ใช้งานจริง signs 2,684 2026-06-17 สถานะการลงนาม eSign (เขียนวันนี้)
🟢 ใช้งานจริง signatures 1,442 2026-06-17 ภาพลายเซ็น (longblob) eSign
🟢 ใช้งานจริง meetingAttendances 1,677 2026-04-08 ผู้เข้าร่วม + eKYC (ekyc_id/verify_status)
🟢 ใช้งานจริง meetings 291 2026-04-08 ห้องไกล่เกลี่ยออนไลน์ (Webex)
🟢 ใช้งาน images 543 2023-01 ไฟล์ภาพ (longblob)
🟢 ใช้งาน users 121 2025-05 ผู้ใช้ฝั่ง V2 (LDAP dn + password)
🟢 ใช้งาน loginLogs 276 2025-06 log การเข้าระบบ
🟡 ลุคอัพ/น้อย meetingCategories 2 หมวดการประชุม
🟡 ลุคอัพ/น้อย mediationSettings 1 2022-09 mediator_fee
🟡 ลุคอัพ/น้อย webex_auths 1 2023-04 Webex OAuth token (refresh ใช้ต่อ)
🟡 เก่า meeting_memos / memo_users 6 / 12 2022-12 บันทึกข้อตกลง (เลิกใช้?)
⚪ ว่าง/ทิ้งร้าง meetingReports meetingReportContents internalMeetings 0 ไม่ถูกใช้
⚪ demo/ทิ้งร้าง exams questions courses trainings trainingAttendances registers 1–13 2022-10 เครื่องยนต์ข้อสอบ/อบรมออนไลน์ — เกือบไม่มีข้อมูล (V3 สร้างใหม่ตาม SRS ไม่ใช่ migrate)

สรุป: ที่ ต้องยกเข้า V3 จริง ๆ คือกลุ่ม 🟢 (online mediation + eSign + eKYC) · กลุ่ม ⚪ exam/training เป็น stub — สร้างใหม่ตาม mockup/SRS


Data Dictionary (ตามโครงจริงจาก DESCRIBE)

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

Column Type Note
id bigint PK
meeting_id / request_id varchar(255) รหัสห้อง / อ้าง cms_mediation
link_url text ลิงก์ห้อง
category / subject / result varchar / text หมวด/หัวข้อ/ผล
start_date / end_date varchar(255) (เก็บเป็น string)
start_time / end_time time
meeting_status / mediation_final_status varchar(255) สถานะ/ผลไกล่เกลี่ย
webex_meeting_id / number / password / host_id / host_email / type varchar(255) Webex meta (🔒 password)
remark text
createdAt / updatedAt timestamp

meetingAttendances — ผู้เข้าร่วม + eKYC 🟢

Column Type Note
id int PK
meeting_id / request_id varchar(255) อ้างห้อง/เคส
attendee_id / attendee_prefix / attendee_firstname / attendee_lastname varchar(255) 🔒 ชื่อผู้เข้าร่วม
attendee_phone / attendee_type varchar(255) เบอร์ / ประเภท (คู่กรณี/ผู้ไกล่เกลี่ย/พยาน)
attendance_date / attendance_time varchar(255)
verify_status / ekyc_id varchar(255) 🔒 สถานะ/รหัสยืนยันตัวตน (eKYC/ThaID)
attendee_address / street / sub_district / district / province / zipcode varchar(255) ที่อยู่
createdAt / updatedAt timestamp

signatures — ภาพลายเซ็น eSign 🟢

Column Type Note
id int PK
meeting_id / request_id varchar(255) อ้างห้อง/เคส
meetingAttendances_id varchar(255) อ้างผู้ลงนาม
attendee_type varchar(255) ประเภทผู้ลงนาม
idcard varchar(13) 🔒 เลขบัตร
data longblob 🔒 ภาพลายเซ็น
createdAt / updatedAt timestamp

signs — สถานะการลงนาม eSign 🟢

Column Type Note
id int PK
meeting_id / request_id / meetingAttendances_id varchar(255) อ้างห้อง/เคส/ผู้ลงนาม
attendee_type / status varchar(255) ประเภท / ลงนามแล้ว-รอ
idcard varchar(255) 🔒
createdAt / updatedAt timestamp

meeting_memos — บันทึกข้อตกลงออนไลน์ 🟡

Column Type Note
id int PK · memo_id / case_id varchar(255)
mediation_center_type / name / category / subject varchar(255)
result / remark text
memo_date / memo_status / mediation_final_status varchar(255)

memo_users — คู่กรณีในบันทึกข้อตกลง 🟡

id, record_id, memo_id, type, prefix, fullname, firstname, lastname, idcard 🔒, phone, email, address, district, amphur, province, zipcode

meetingReports / meetingReportContents — รายงานไกล่เกลี่ย ⚪ (ว่าง)

meetingReports: meeting_id, mediation_center_name, mediation_date, mediation_requester_name, mediation_respondant_name, mediation_subject, requester_* (fullname/address/street/sub_district/district/province/zipcode) 🔒, respondant_* (เหมือนกัน) 🔒, content, remark, report_status · meetingReportContents: meeting_id, content_index, report_content

internalMeetings — ประชุมภายใน (Webex) ⚪ (ว่าง)

meeting_id PK, link_url, category, subject, start_date, end_date, start_time, end_time, remark, meeting_status, webex_* (id/number/password/host_id/host_email/type), webex_invitees

webex_auths — Webex OAuth token 🟡

id PK, access_token longtext 🔒, refresh_token longtext 🔒

meetingCategories — หมวดการประชุม 🟡

id PK, category_name, category_description, category_status

users — ผู้ใช้ฝั่ง V2 (LDAP) 🟢

id PK, username UNI, dn (LDAP), prefix, first_name, last_name, id_card_number 🔒, address/sub_district/district/province/zipcode, birth_date, gender, email, phone, company, department, position, password 🔒, user_status, consent_accept

loginLogs — log การเข้าระบบ 🟢

id PK, username, permission, login_status

images — ไฟล์ภาพ 🟢

id PK, type, name, description, category, created_by, modified_by, permission, hidden, data longblob

mediationSettings — ตั้งค่า 🟡

id PK, mediator_fee

Exam / Training engine ⚪ (demo/stub — ~1–13 rows, last 2022; V3 สร้างใหม่ตาม SRS)

  • exams: id, exam_name, exam_description, exam_category, exam_total_point, exam_pass_point, exam_status (1 row)
  • questions: id, exam_id, question, choice1–4, answer, point (4 rows)
  • courses: id, name, description, category, ... (1 row)
  • trainings: id, name, description, start/end_date, start/end_time, capacity, event_status, link_url, webex_* , invitees, exam_id (13 rows, 2022)
  • trainingAttendances: regis_id, training_id, user_id, attendee_name, stamp_date, sign_in_time, sign_out_time (4 rows)
  • registers: regis_id PK, user_id, training_id, point (2 rows)

หน้าที่เกี่ยวข้อง