운영 DB 스키마 (DDL)¶
MySQL 8(
utf8mb4). 전체 DDL은 raw운영-DB-DDL참조. ERD: theEdu (erdcloud). 여긴 구조 요약(자격증명 없음).
1. 테이블 ↔ 도메인 매핑¶
| 테이블 | 도메인 | 핵심 컬럼 / 비고 |
|---|---|---|
member |
teams/engineering/domains/member | 단일 테이블 상속(DTYPE), email UNIQUE, role enum(ADMIN/PARENT/STUDENT/TEACHER) |
connection |
teams/engineering/domains/member | requester_id/recipient_id → member, state enum, accepted_date |
study_room |
teams/engineering/domains/studyroom | teacher_id FK, visibility/modality/class_form/subject_type/school_level, capacity |
study_room_student |
teams/engineering/domains/studyroom | student_id/study_room_id, state enum(APPROVED/PENDING/REJECTED/TERMINATED) |
teaching_note_group |
teams/engineering/domains/teaching-note | study_room_id FK (ON DELETE CASCADE) |
teaching_note |
teams/engineering/domains/teaching-note | visibility enum(6단계), view_count, group FK (ON DELETE SET NULL) |
teaching_note_student |
teams/engineering/domains/teaching-note | 특정 학생 공개 매핑 |
teaching_note_image |
teams/engineering/domains/teaching-note | image_id UNIQUE, s3key, mime_type, size_bytes |
notification |
(Notification) | type enum(CONNECTION_REQUEST/SYSTEM), recipient_id, is_read, target_id |
2. 공통 규약¶
- 모든 테이블
reg_date/mod_date(datetime(6)) — BaseEntity 상속 - 소프트 딜리트는
deleted_at기반 (teams/engineering/guides/soft-delete). DDL에 따라 일부는 FK CASCADE stateenum(APPROVED/PENDING/REJECTED/TERMINATED)을 study_room_student·connection이 공유
3. 공유 enum¶
- Connection/StudyRoomStudent state: PENDING → APPROVED | REJECTED | TERMINATED
- TeachingNote visibility: TEACHER_ONLY · SPECIFIC_STUDENTS_ONLY · SPECIFIC_STUDENTS_AND_PARENTS · STUDY_ROOM_STUDENTS_ONLY · STUDY_ROOM_STUDENTS_AND_PARENTS · PUBLIC
- Notification type: CONNECTION_REQUEST · SYSTEM
4. 관련¶
- teams/engineering/guides/db-migration — Flyway 버전 관리(PROD ddl-auto none)
- teams/engineering/infra/environments