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"