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

S4 — ระบบไกล่เกลี่ยข้อพิพาท — Entity Relationship Diagram

แหล่งที่มา

สร้างจาก live production DB (schema MEDIATE) + ความสัมพันธ์เชิงตรรกะที่ระบุไว้ใน index.md §4 โดย scripts/generate_erd.py — regenerate ได้ (ดูคำสั่งท้ายหน้า)

  • เส้นทึบ ||--o{ = Explicit FK constraint (บังคับใน DB จริง)
  • เส้นประ ||..o{ = Logical relationship (อนุมานจาก naming/แอป — ไม่มี FK constraint ใน DB)

Explicit Foreign Keys

ไม่มี Explicit FK

schema MEDIATE ไม่มี FK constraint ในฐานข้อมูลเลย — ความสัมพันธ์ทั้งหมดบังคับที่ application layer ทำให้เสี่ยงต่อ orphan records. ER diagram ด้านล่างเป็นความสัมพันธ์เชิงตรรกะ (logical) ทั้งหมด

Logical Relationships (Entity Relationship Diagram)

แยกตามกลุ่มงาน (functional group) เพื่อให้แต่ละไดอะแกรมอ่านได้ — ความสัมพันธ์เหล่านี้อนุมานจากรูปแบบการตั้งชื่อคอลัมน์ และตรวจสอบแล้วว่าตารางมีอยู่จริงใน live DB

Mediation Core

erDiagram
    cms_mediation ||..o{ cms_mediation_booking : "mediation_id"
    cms_mediation ||..o{ cms_mediation_compensation : "mediation_id"
    cms_mediation ||..o{ cms_mediation_docs : "mediation_id"
    cms_mediation ||..o{ cms_mediation_mediator : "mediation_id"
    cms_mediator_applicant ||..o{ cms_mediation_mediator : "mediator_applicant_id"
    cms_mediation ||..o{ cms_mediation_witness : "mediation_id"
    cms_mediation ||..o{ cms_mediation_pdf : "mediation_id"
    cms_mediation ||..o{ cms_mediation_books : "mediation_id"

Compensation

erDiagram
    cms_mediation ||..o{ cms_compensation_certification_payment : "mediation_id"
    cms_mediation ||..o{ cms_compensation_main : "mediation_id"
    cms_mediation ||..o{ cms_compensation_payment_receipt : "mediation_id"
    cms_mediation ||..o{ cms_compensation_requisition_form : "mediation_id"
    cms_compensation_main ||..o{ cms_compensation_history : "comp_id"
    cms_compensation_main ||..o{ cms_compensation_files : "comp_id"
    cms_compensation_file_type ||..o{ cms_compensation_files : "file_type_id"
    cms_compensation_role ||..o{ cms_compensation_map_user : "position_id"

Mediator

erDiagram
    cms_mediator_applicant ||..o{ cms_mediator_applicant_item : "mediator_applicant_id"
    cms_mediator_applicant ||..o{ cms_mediator_appointment : "mediator_applicant_id"
    cms_mediator_applicant ||..o{ cms_mediator_cert : "mediator_applicant_id"
    cms_mediator_ending ||..o{ cms_mediator_ending_item : "mediator_ending_id"
    cms_mediator_applicant ||..o{ cms_mediator_portfolio : "mediator_applicant_id"
    cms_mediator_applicant ||..o{ cms_mediator_request_edit : "mediator_applicant_id"

People Center

erDiagram
    cms_geo_province ||..o{ cms_people_center : "province_id"
    cms_people_center ||..o{ cms_people_center_announcement : "people_center_id"
    cms_people_center ||..o{ cms_people_center_assessment : "people_center_id"
    cms_people_center_assessment ||..o{ cms_people_center_assessment_detail : "people_center_assessment_id"
    cms_people_center ||..o{ cms_people_center_book : "people_center_id"
    cms_people_center ||..o{ cms_people_center_highlight : "people_center_id"
    cms_people_center ||..o{ cms_people_center_level : "people_center_id"
    cms_people_center ||..o{ cms_people_center_meeting : "people_center_id"
    cms_people_center ||..o{ cms_people_center_participant : "people_center_id"
    cms_people_center ||..o{ cms_people_center_report : "people_center_id"
    cms_people_center ||..o{ cms_people_center_result : "people_center_id"
    cms_people_center_result ||..o{ cms_people_center_result_item : "people_center_result_id"
    cms_people_center ||..o{ cms_people_center_support : "people_center_id"
    cms_people_center ||..o{ cms_people_center_training : "people_center_id"
    cms_people_center_training ||..o{ cms_people_center_training_item : "people_center_training_id"
    cms_institute_category ||..o{ cms_institute_mediation : "institute_category_id"

Training

erDiagram
    cms_training_topic ||..o{ cms_training_register : "training_topic_id"
    cms_training_topic ||..o{ cms_training_management_rate : "training_topic_id"
    cms_training_topic ||..o{ cms_training_management_result : "training_topic_id"
    cms_training_management_result ||..o{ cms_training_management_result_item : "training_management_result_id"
    cms_training_register_result ||..o{ cms_training_register_result_item : "training_register_result_id"
    cms_training_topic ||..o{ cms_training_topic_gallery : "training_topic_id"
    cms_training_topic ||..o{ cms_training_certificate : "training_topic_id"

User & Auth

erDiagram
    cms_menu ||..o{ cms_user_permission : "menu_id"
    cms_users ||..o{ cms_user_logs : "user_id"

Geography

erDiagram
    cms_geo_province ||..o{ cms_geo_amphur : "province_id"
    cms_geo_amphur ||..o{ cms_geo_district : "amphur_id"
    cms_geo_district ||..o{ cms_geo_zipcode : "district_id"

KTB Corp

erDiagram
    cms_profile_ktbcorp ||..o{ cms_profile_ktbcorp_addr : "kcorp_id"

⚠️ Validation — ความสัมพันธ์ที่อ้างถึงตารางที่ไม่พบใน DB

รายการต่อไปนี้ระบุไว้ใน index.md แต่ตารางที่อ้างถึงไม่พบใน live DB (อาจเป็น typo, ตารางถูกลบ, หรือชื่อย่อในเอกสาร):

  • Mediation Core: cms_mediation_booking_mediator.booking_id -> cms_mediation_booking (ไม่พบ: column cms_mediation_booking_mediator.booking_id)
  • Mediation Core: cms_mediation_booking_online.booking_id -> cms_mediation_booking (ไม่พบ: column cms_mediation_booking_online.booking_id)
  • Mediator: cms_mediator_ending.mediator_applicant_id -> cms_mediator_applicant (ไม่พบ: column cms_mediator_ending.mediator_applicant_id)
  • Mediator: cms_mediator_registra.mediator_applicant_id -> cms_mediator_applicant (ไม่พบ: column cms_mediator_registra.mediator_applicant_id)
  • People Center: cms_people_center_assessment_result.master_assessment_id -> cms_master_assessment (ไม่พบ: column cms_people_center_assessment_result.master_assessment_id)
  • Training: cms_training_register.institute_mediation_id -> cms_institute_mediation (ไม่พบ: column cms_training_register.institute_mediation_id)
  • Training: cms_training_management_checkin.training_topic_id -> cms_training_topic (ไม่พบ: column cms_training_management_checkin.training_topic_id)
  • Training: cms_training_management_score.institute_mediation_id -> cms_institute_mediation (ไม่พบ: column cms_training_management_score.institute_mediation_id)
  • Training: cms_training_register_result.training_register_id -> cms_training_register (ไม่พบ: column cms_training_register_result.training_register_id)
  • User & Auth: cms_user_role.user_id -> cms_users (ไม่พบ: column cms_user_role.user_id)
  • User & Auth: cms_user_role.role_id -> role (ไม่พบ: table role)
  • User & Auth: cms_user_permission.role_id -> role (ไม่พบ: table role)
  • KTB Corp: cms_profile_ktbcorp_bank.kcorp_id -> cms_profile_ktbcorp (ไม่พบ: column cms_profile_ktbcorp_bank.kcorp_id)

Regenerate

DB_HOST=<host> DB_PORT=<port> DB_USER=<login> DB_PASS=<pass> \
    python3 scripts/generate_erd.py S4