본문 바로가기
개인 프로젝트/Danmuji04

Supabase ERD

by 학습하는 청년 2025. 7. 16.

 

주요 설계

  1. UUID + SERIAL: 새로운 테이블은 UUID, 기존 테이블은 SERIAL 사용
  2. RLS: 모든 테이블 권한 제어
  3. 실시간 기능: Supabase Realtime을 통한 채팅과 알림
  4. 승인 시스템: 스터디 참여, 강사 신청 등 승인 기반 워크플로우
  5. 북마크/진도 추적: 사용자 경험을 위한 상태 관리
  • 테이블 수: 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 관리하면서 직접 처리하는 게 더 안정적이고 깔끔할 것 같음) 

 

댓글