음악 플레이리스트 정보를 저장하는 테이블은 음악 스트리밍 서비스, 라디오 방송국, 개인의 음악 관리 등에서 사용자의 플레이리스트를 관리하는 데 중요합니다. 이 테이블은 플레이리스트 ID, 소유자 ID, 플레이리스트 이름, 생성 날짜, 곡 목록, 공유 여부 등의 정보를 포함할 수 있습니다. 다음은 음악 플레이리스트 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 음악 플레이리스트 테이블 생성
CREATE TABLE music_playlists (
playlist_id INT AUTO_INCREMENT PRIMARY KEY,
owner_id INT,
playlist_name VARCHAR(100),
creation_date TIMESTAMP,
shared BOOLEAN,
description TEXT
);
설명: 플레이리스트 ID, 소유자 ID, 플레이리스트 이름, 생성 날짜, 공유 여부, 설명 등을 저장합니다.
2. 플레이리스트 곡 정보 테이블 생성
CREATE TABLE playlist_tracks (
track_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
song_id INT,
addition_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id),
FOREIGN KEY (song_id) REFERENCES songs(song_id)
);
설명: 곡 ID, 플레이리스트 ID, 곡 ID, 추가 날짜 등을 저장합니다.
3. 곡 정보 테이블 생성
CREATE TABLE songs (
song_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100),
artist VARCHAR(100),
album VARCHAR(100),
release_date DATE,
genre VARCHAR(50)
);
설명: 곡 ID, 곡 제목, 아티스트, 앨범, 발매 날짜, 장르 등을 저장합니다.
4. 플레이리스트 사용자 접근 테이블 생성
CREATE TABLE playlist_access (
access_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
user_id INT,
access_type VARCHAR(50),
access_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 접근 ID, 플레이리스트 ID, 사용자 ID, 접근 타입, 접근 날짜 등을 저장합니다.
5. 사용자 정보 테이블 생성
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
registration_date TIMESTAMP
);
설명: 사용자 ID, 사용자명, 이메일, 등록 날짜 등을 저장합니다.
6. 플레이리스트 좋아요 테이블 생성
CREATE TABLE playlist_likes (
like_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
user_id INT,
like_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 좋아요 ID, 플레이리스트 ID, 사용자 ID, 좋아요 날짜 등을 저장합니다.
7. 플레이리스트 댓글 테이블 생성
CREATE TABLE playlist_comments (
comment_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
user_id INT,
comment_text TEXT,
comment_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 댓글 ID, 플레이리스트 ID, 사용자 ID, 댓글 내용, 댓글 날짜 등을 저장합니다.
8. 플레이리스트 태그 테이블 생성
CREATE TABLE playlist_tags (
tag_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
tag_name VARCHAR(50),
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id)
);
설명: 태그 ID, 플레이리스트 ID, 태그 이름 등을 저장합니다.
9. 플레이리스트 플레이 횟수 테이블 생성
CREATE TABLE playlist_plays (
play_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
play_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id)
);
설명: 플레이 ID, 플레이리스트 ID, 플레이 날짜 등을 저장합니다.
10. 플레이리스트 공유 테이블 생성
CREATE TABLE playlist_shares (
share_id INT AUTO_INCREMENT PRIMARY KEY,
playlist_id INT,
shared_by INT,
shared_with INT,
share_date TIMESTAMP,
FOREIGN KEY (playlist_id) REFERENCES music_playlists(playlist_id),
FOREIGN KEY (shared_by) REFERENCES users(user_id),
FOREIGN KEY (shared_with) REFERENCES users(user_id)
);
설명: 공유 ID, 플레이리스트 ID, 공유한 사용자 ID, 공유받은 사용자 ID, 공유 날짜 등을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, DECIMAL, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
지도 위치 테이블 생성: 지도 위치 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
---|---|
학교 수업 일정 테이블 생성: 학교 수업 일정 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
게임 플레이어 테이블 생성: 게임 플레이어 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
전화 통화 기록 테이블 생성: 전화 통화 기록 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.02 |
부동산 매물 테이블 생성: 부동산 매물 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.02 |