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

S9 — ระบบเว็บพอร์ทัลกลาง — Entity Relationship Diagram

แหล่งที่มา

สร้างจาก live production DB (schema PORTAL) + ความสัมพันธ์เชิงตรรกะที่ระบุไว้ใน 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 constraint จริง 13 รายการในฐานข้อมูล

erDiagram
    RLPDSystems ||--o{ EmailNotificationSettings : "SystemCode"
    RLPDSystems ||--o{ ModuleRoles : "SystemCode"
    PermissionRequest ||--o{ PermissionRequestFiles : "PermissionRequestId"
    PermissionRequest ||--o{ PermissionRequestHistory : "RequestId"
    RLPDSystems ||--o{ PetitionRequestDepartments : "DepartmentId"
    PetitionRequests ||--o{ PetitionRequestDepartments : "PetitionRequestId"
    PetitionRequests ||--o{ PetitionRequestFiles : "PetitionRequestId"
    PetitionRequests ||--o{ PetitionRequestHistory : "PetitionRequestId"
    TaskStatusMapping ||--o{ PetitionRequests : "Status"
    PermissionRequest ||--o{ RequestedPermissions : "RequestId"
    RLPDSystems ||--o{ RequestedPermissions : "SystemCode"
    Groups ||--o{ SubGroups : "GroupId"
    RLPDSystems ||--o{ SystemAccessLog : "SystemCode"
Parent Child Column ON UPDATE ON DELETE
RLPDSystems EmailNotificationSettings SystemCode CASCADE SET_NULL
RLPDSystems ModuleRoles SystemCode NO_ACTION NO_ACTION
PermissionRequest PermissionRequestFiles PermissionRequestId CASCADE NO_ACTION
PermissionRequest PermissionRequestHistory RequestId NO_ACTION CASCADE
RLPDSystems PetitionRequestDepartments DepartmentId NO_ACTION NO_ACTION
PetitionRequests PetitionRequestDepartments PetitionRequestId NO_ACTION NO_ACTION
PetitionRequests PetitionRequestFiles PetitionRequestId CASCADE CASCADE
PetitionRequests PetitionRequestHistory PetitionRequestId NO_ACTION CASCADE
TaskStatusMapping PetitionRequests Status NO_ACTION NO_ACTION
PermissionRequest RequestedPermissions RequestId CASCADE SET_NULL
RLPDSystems RequestedPermissions SystemCode CASCADE SET_NULL
Groups SubGroups GroupId NO_ACTION NO_ACTION
RLPDSystems SystemAccessLog SystemCode NO_ACTION NO_ACTION

Logical Relationships (Entity Relationship Diagram)

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

Logical Relationships (No FK Constraint)

erDiagram
    UserProfile ||..o{ UserRole : "UserId"
    RLPDSystems ||..o{ UserRole : "SystemCode"
    Provinces ||..o{ Districts : "ProvinceId"
    Districts ||..o{ SubDistricts : "DistrictId"
    ApiTokens ||..o{ OpenApiExecuteLog : "TokenRegistryId"
    ApiKey ||..o{ EmailSentLog : "ApiKeyId"

Regenerate

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