erDiagram
USERS {
INT id "ID (AUTO_INCREMENT)"
TIMESTAMP timestamp "κ°μ
μΌμ"
VARCHAR uuid PK "κ³ μ ID"
VARCHAR email "μ΄λ©μΌ"
VARCHAR password_hash "λΉλ°λ²νΈ ν΄μ"
BOOLEAN service_enabled "μλΉμ€ μ΄μ© κ°λ₯ μ¬λΆ"
}
SURVEY_SUBMISSIONS {
INT id "ID (AUTO_INCREMENT)"
TIMESTAMP timestamp "μμ μκ°"
VARCHAR uuid FK "κ³ μ ID"
JSON payload "μ€λ¬Έ λ°μ΄ν°"
}
SERVICE_USAGE {
INT id "ID (AUTO_INCREMENT)"
TIMESTAMP timestamp "μ΄μ© μκ°"
VARCHAR uuid FK "κ³ μ ID"
VARCHAR correlation_id "μμ²κ³Ό μλ΅μ μ°κ³νκΈ° μν κ³ μ μλ³μ (Indexed)"
}
SYSTEM_LOGS {
INT id "ID (AUTO_INCREMENT)"
TIMESTAMP timestamp "λ‘κ·Έκ° κΈ°λ‘λ μκ°"
ENUM layer "PRESENTATION/BUSINESS/PERSISTENCE/DATABASE (λ‘κ·Έκ° κΈ°λ‘λ κ³μΈ΅)"
ENUM log_type "REQUEST/RESPONSE (μμ² λλ μλ΅ κ΅¬λΆ)"
VARCHAR correlation_id FK "μμ²κ³Ό μλ΅μ μ°κ³νκΈ° μν κ³ μ μλ³μ (Indexed)"
VARCHAR status "μλ΅μ μν μ½λ λλ λ©μμ§ (nullable)"
VARCHAR msg "λ‘κ·Έ λ©μμ§ (nullable)"
JSON error "μ€λ₯ λ°μ μ μλ¬ μ 보 (nullable, JSON νμ)"
JSON data "μμ² λλ μλ΅ λ°μ΄ν° (nullable, JSON νμ)"
}
SERVICE_USAGE ||--o{ SYSTEM_LOGS : "has"
USERS ||--o{ SURVEY_SUBMISSIONS : "has"
USERS ||--o{ SERVICE_USAGE : "has"