주요 설계
- UUID + SERIAL: 새로운 테이블은 UUID, 기존 테이블은 SERIAL 사용
- RLS: 모든 테이블 권한 제어
- 실시간 기능: Supabase Realtime을 통한 채팅과 알림
- 승인 시스템: 스터디 참여, 강사 신청 등 승인 기반 워크플로우
- 북마크/진도 추적: 사용자 경험을 위한 상태 관리
- 테이블 수: 30여개
- 도메인 수: 8개
- 기능: 강의 플랫폼, 커뮤니티, 스터디 그룹, 도서 추천, 관리 시스템, 실시간 채팅, 알림 시스템, 수료증 발급 등
- 데이터 관계: 다대다 관계, 계층적 구조, 상태 관리 로직
- 보안: RLS로 모든 테이블 보호, 역할 기반 권한, 승인 워크플로우
주요 도메인 영역
1. 사용자 관리
- auth.users - profiles: 사용자 인증과 프로필 정보 (1:1 관계)
- 역할 기반 권한 시스템 (noral, instructor, manager, admin)
- instructor_applications: 강사신청
- contact_message: 문의하기
- notifications: 알림 정보 + 예약 알림
2. 강의 시스템
- lecture -> lecture_sections -> lecture_items: 계층적 강의 구조
- enrollments, lecture_progress: 수강 관리 및 진도 추적
- last_watched_items: 마지막 시청 위치 추적
- bookmarks: 북마크
3. 코스 시스템
- courses -> course_items: YouTube 기반 선별 영상
- course_progress, course_writings: 학습 진도 및 기록 정리
- certificates: 수료증 발급 시스템
4. 강의 리뷰 시스템
- lectures -> reviews: 강의 평가 시스템 (수강평을 작성하려면 별점으로 평가를 해야 함)
- reviews -> review_replies, review_likes, review_reply_likes: 댓글, 대댓글, 댓글 좋아요
5. 커뮤니티
- community_posts: 게시글
- communty_posts -> post_tags, post_likes, post_bookmarks: 게시글 태그, 좋아요, 북마크
- post_comments: 댓글/대댓글
- comment_likes: 댓글 좋아요
5. 스터디 그룹
- studies: 스터디
- book -> studids: 추천 도서 기반 스터디
- study_participants: 승인 기반 참여 시스템
- study_chat_messages: 스터디 참여자 실시간 채팅
- study_discussions -> study_comments: 스터디 토론 및 토론 댓글 (삭제 예정: 스터디 실시간 채팅으로 대체 가능하다고 생각함)
- study_materials, study_bookmarks, study_schedules: 스터디 부가 정보
6. 도서 관리
- books: 도서 정보 및 추천
- book_recommendations, book_comments: 추천 및 리뷰
7. 관리 시스템
- notifications_templates: 알림 예약 발송 기능
- site_settings, categories: 사이트 정보 변경 (삭제 예정: version 관리하면서 직접 처리하는 게 더 안정적이고 깔끔할 것 같음)
'개인 프로젝트 > Danmuji04' 카테고리의 다른 글
리팩토링 과정 & 오류 (0) | 2025.07.16 |
---|---|
Jotai 적용 (Knowledge, Study Section) (0) | 2025.07.11 |
프로젝트 기획 (1) | 2025.07.11 |
Jotai 적용 (Course, Community Section) (0) | 2025.06.11 |
성능 개선 - 게시글 상세 페이지 LCP 개선 (0) | 2025.06.07 |
댓글