Skip to main content

2. 데이터베이스

WePLi 서비스는 사용자가 자신만의 음악 플레이리스트를 만들고, 다른 사용자와 공유할 수 있는 플랫폼입니다.
이 문서에서는 데이터베이스 스키마와 설계 시의 명명 규칙, 그리고 사용된 도구에 대해 설명합니다.

WePLi Database Schema

1. 사용자 테이블​

Users

컬럼명데이터 타입설명제약 조건
idINTEGER사용자 고유 IDPrimary Key
emailVARCHAR사용자의 이메일 주소Not Null, Unique
usernameVARCHAR사용자 이름Not Null
profile_imgVARCHAR프로필 이미지 URL
tendencyTendency사용자 성향Enum
created_atTIMESTAMP사용자 등록 시각Default Now()
updated_atTIMESTAMP사용자 정보 수정 시각

2. 게시글 테이블​

Posts

컬럼명데이터 타입설명제약 조건
idINTEGER게시글 고유 IDPrimary Key
titleVARCHAR게시글 제목
contentsTEXT게시글 내용
user_idINTEGER작성자 IDForeign Key
like_cntINTEGER좋아요 수Default 0
comment_cntINTEGER댓글 수Default 0
created_atTIMESTAMP게시글 생성 시각Default Now()
updated_atTIMESTAMP게시글 수정 시각

3. 게시글 좋아요 테이블​

PostLike

컬럼명데이터 타입설명제약 조건
user_idINTEGER좋아요를 누른 사용자 IDForeign Key
post_idINTEGER좋아요가 눌린 게시글 IDForeign Key

4. 게시글 스크랩 테이블​

PostScrap

컬럼명데이터 타입설명제약 조건
user_idINTEGER스크랩한 사용자 IDForeign Key
post_idINTEGER스크랩된 게시글 IDForeign Key

5. 댓글 테이블​

Comments

컬럼명데이터 타입설명제약 조건
idINTEGER댓글 고유 IDPrimary Key
parent_idINTEGER부모 댓글 ID
post_idINTEGER댓글이 속한 게시글 IDForeign Key
user_idINTEGER댓글 작성자 IDForeign Key
contentsVARCHAR댓글 내용
like_cntINTEGER댓글의 좋아요 수Default 0
created_atTIMESTAMP댓글 생성 시각Default Now()
updated_atTIMESTAMP댓글 수정 시각

6. 댓글 좋아요 테이블​

CommentLike

컬럼명데이터 타입설명제약 조건
user_idINTEGER댓글에 좋아요를 누른 사용자 IDForeign Key
comment_idINTEGER좋아요가 눌린 댓글 IDForeign Key

7. 플레이리스트 테이블​

Playlist

컬럼명데이터 타입설명제약 조건
idINTEGER플레이리스트 고유 IDPrimary Key
titleVARCHAR플레이리스트 제목Not Null
subscriptionVARCHAR구독자 수
thumbnailVARCHAR썸네일 이미지 URL
user_idVARCHAR생성자 사용자 IDForeign Key
song_cntINTEGER포함된 노래 수Default 0
vote_cntINTEGER투표 수Default 0
created_atTIMESTAMP플레이리스트 생성 시각Default Now()
updated_atTIMESTAMP플레이리스트 수정 시각

8. 릴레이 리스트 테이블​

Relaylist

컬럼명데이터 타입설명제약 조건
idINTEGER릴레이 리스트의 고유 IDPrimary Key
titleVARCHAR릴레이 리스트 제목
subscriptionVARCHAR구독자 수
thumbnailVARCHAR썸네일 이미지 URL
user_idVARCHAR생성자 사용자 IDForeign Key
song_cntINTEGER포함된 노래 수Default 0
vote_cntINTEGER투표 수Default 0
end_dateTIMESTAMP종료 날짜
created_atTIMESTAMP릴레이 리스트 생성 시각Default Now()
updated_atTIMESTAMP릴레이 리스트 수정 시각

9. 노래 테이블​

Songs

컬럼명데이터 타입설명제약 조건
idINTEGER노래 고유 IDPrimary Key
titleVARCHAR노래 제목
singerVARCHAR가수
albumVARCHAR앨범 이름
cover_imgVARCHAR커버 이미지 URL

10. 차트 테이블​

Chart

컬럼명데이터 타입설명제약 조건
idINTEGER차트 고유 IDPrimary Key
titleVARCHAR차트 제목
singerVARCHAR가수
albumVARCHAR앨범 이름
cover_imgVARCHAR커버 이미지 URL

11. 플레이리스트 수록곡 테이블​

PlaylistBsideTrack

컬럼명데이터 타입설명제약 조건
playlist_idINTEGER해당 플레이리스트의 IDForeign Key
song_idINTEGER플레이리스트에 포함된 노래의 IDForeign Key
vote_cntINTEGER해당 트랙에 대한 투표 수Default 0

12. 릴레이리스트 수록곡 테이블​

RelaylistBsideTrack

컬럼명데이터 타입설명제약 조건
relaylist_idINTEGER해당 릴레이 리스트의 IDForeign Key
song_idINTEGER릴레이 리스트에 포함된 노래의 IDForeign Key
vote_cntINTEGER해당 트랙에 대한 투표 수Default 0