콜렉션은 강제로 담겨져 있는건 아니고 커스터마이즈할 수 있는 자루라고 생각하고 쓰면 좋을거 같다.
예를 들어서 음악에서 플레이 리스트같이..
기초적인 작업에서는 제외하고 추가기능 작업으로 진행할 수 있어보인다.
다음은 chat gpt
에게 물어본 db 테이블 구성이다.
SQLite를 사용하여 음악 플레이리스트를 구현하는 예제를 보여드리겠습니다. 아래 예제에서는 SQLite 데이터베이스를 사용하여 플레이리스트, 음악 트랙 및 플레이리스트와 음악 트랙 간의 관계를 저장합니다.
먼저, 다음과 같이 테이블을 생성할 수 있습니다:
CREATE TABLE Playlist (
playlist_id INTEGER PRIMARY KEY,
title TEXT,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
CREATE TABLE Song (
song_id INTEGER PRIMARY KEY,
title TEXT,
artist TEXT,
album TEXT,
duration INTEGER
);
CREATE TABLE PlaylistSong (
playlist_id INTEGER,
song_id INTEGER,
FOREIGN KEY (playlist_id) REFERENCES Playlist(playlist_id),
FOREIGN KEY (song_id) REFERENCES Song(song_id),
PRIMARY KEY (playlist_id, song_id)
);
이제 각 테이블에 데이터를 추가할 수 있습니다. 예를 들어, 샘플 데이터를 삽입하는 방법은 다음과 같습니다:
-- Playlist 테이블에 샘플 데이터 삽입
INSERT INTO Playlist (title) VALUES ('My Favorites');
INSERT INTO Playlist (title) VALUES ('Party Mix');
-- Song 테이블에 샘플 데이터 삽입
INSERT INTO Song (title, artist, album, duration) VALUES ('Song 1', 'Artist 1', 'Album 1', 240);
INSERT INTO Song (title, artist, album, duration) VALUES ('Song 2', 'Artist 2', 'Album 2', 180);
INSERT INTO Song (title, artist, album, duration) VALUES ('Song 3', 'Artist 3', 'Album 3', 300);
-- PlaylistSong 테이블에 샘플 데이터 삽입
INSERT INTO PlaylistSong (playlist_id, song_id) VALUES (1, 1); -- My Favorites 플레이리스트에 Song 1 추가
INSERT INTO PlaylistSong (playlist_id, song_id) VALUES (1, 2); -- My Favorites 플레이리스트에 Song 2 추가
INSERT INTO PlaylistSong (playlist_id, song_id) VALUES (2, 2); -- Party Mix 플레이리스트에 Song 2 추가
INSERT INTO PlaylistSong (playlist_id, song_id) VALUES (2, 3); -- Party Mix 플레이리스트에 Song 3 추가
위 예제에서는 SQLite를 사용하여 플레이리스트, 음악 트랙 및 플레이리스트와 음악 트랙 간의 관계를 저장하는 방법을 보여줍니다. 데이터베이스 연결 및 쿼리 실행은 SQLite3와 PHP를 사용하는 환경에 맞게 수정하여 사용할 수 있습니다.
보아하니 관계 테이블을 따로 만들어서 콜렉션과 쉐이프 테이블을 연결시킬 수 있어보인다.