| 필드명 | 타입 | 설명 |
|---|---|---|
| id | Long | PK |
| studentId | String | 학번 (로그인용, unique) |
| name | String | 이름 |
| password | String | 암호화된 비밀번호 |
| major | String | 전공 |
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | Long | PK |
| name | String | 과목 이름 |
| type | Enum (전공/교양) | 과목 유형 |
| major | String (nullable) | 전공 과목일 경우만 사용 |
🔁 사용자 전공과 subject.major가 일치하면 전공 과목으로 조회됨.
| 필드명 | 타입 | 설명 |
|---|---|---|
| id | Long | PK |
| user_id | Long | FK → User |
| title | String | 일정 제목 |
| type | Enum (과제/시험/발표) | 일정 유형 |
| subjectName | String | 과목명 (등록된 과목 중 선택) |
| date | LocalDate | 일정 날짜 |
| dDayNotified | boolean | D-7 알림 여부 (기본 false) |
User 1명 → 여러 개 Schedule 등록 가능 (1:N)
Subject는 User와 직접 관계는 없지만
User.major 값을 기준으로 Subject.major를 필터링하여 전공 과목만 조회 가능
User
├─ id (PK)
├─ studentId (unique)
├─ name
├─ password
└─ major
│
│ 전공 값 기반 조회
▼
Subject
├─ id (PK)
├─ name
├─ type (전공/교양)
└─ major (nullable)
User 1 ────< Schedule N
├─ id (PK)
├─ title
├─ type (과제/시험/발표)
├─ subjectName
├─ date
└─ dDayNotified
Team (팀 정보) 테이블| 필드명 | 타입 | 설명 |
|---|---|---|
| id | Long | PK |
| name | String | 팀 이름 |
| inviteCode | String | 초대 코드 (랜덤 문자열, unique) |