데이터베이스를 어떤 방식으로 만들어야 할까?
필요한 엔티티 목록 (1차 정리)
엔티티 | 설명 |
---|---|
User | 보호자 계정 정보 |
Pet | 반려동물 정보 |
Match | 교배 매칭 신청 및 상태 |
ChatRoom | 채팅방 정보 |
ChatMessage | 채팅 메시지 기록 |
Post | 커뮤니티 게시글 |
Comment | 커뮤니티 댓글 |
Report | 신고 정보 |
Notification | 실시간 알림 |
Location | 위치 정보 (사용자/동물 기준) |
Admin | 관리자 계정 (선택적) |
Black List Token | 블랙리스트 토큰 |
📦 각 엔티티에 포함될 주요 속성 예시
1. User
- id (PK)
- username
- password
- nickname
- phone
- profile_image_url
- is_admin (boolean)
- created_at / updated_at
2. Pet
- id (PK)
- owner_id (FK → User)
- name
- species (e.g., dog, cat)
- breed
- gender
- birth_date
- is_neutered
- personality (text)
- photo_url
- location_id (FK → Location)
- created_at / updated_at
3. Match
- id (PK)
- pet_id (FK → Pet)
- target_pet_id (FK → Pet)
- status (대기/수락/거절/완료 등)
- created_at / updated_at
4. ChatRoom
- id (PK)
- match_id (FK → Match)
- created_at
5. ChatMessage
- id (PK)
- chatroom_id (FK → ChatRoom)
- sender_id (FK → User)
- message
- sent_at
6. Post
- id (PK)
- author_id (FK → User)
- title
- content
- category (잡담/질문/정보 등)
- created_at / updated_at
7. Comment
- id (PK)
- post_id (FK → Post)
- author_id (FK → User)
- content
- created_at / updated_at
8. Report
- id (PK)
- reporter_id (FK → User)
- target_type (user/post/comment/chat)
- target_id
- reason
- status (처리중/처리완료)
- created_at
9. Notification
- id (PK)
- user_id (FK → User)
- type (매칭요청, 메시지도착 등)
- content
- is_read (boolean)
- created_at
10. Location
- id (PK)
- latitude
- longitude
- city
- district
작성중..
Leave a comment