21 lines
579 B
SQL
21 lines
579 B
SQL
-- Schema for KeySelector and AcousticBrainz data
|
|
|
|
CREATE TABLE IF NOT EXISTS tracks (
|
|
id SERIAL PRIMARY KEY,
|
|
mbid VARCHAR(36) UNIQUE NOT NULL, -- MusicBrainz ID
|
|
title VARCHAR(255),
|
|
artist VARCHAR(255),
|
|
camelot_key VARCHAR(3),
|
|
bpm INTEGER,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
CREATE TABLE IF NOT EXISTS track_tags (
|
|
track_id INTEGER REFERENCES tracks(id),
|
|
tag VARCHAR(100),
|
|
PRIMARY KEY (track_id, tag)
|
|
);
|
|
|
|
CREATE INDEX IF NOT EXISTS idx_camelot_key ON tracks(camelot_key);
|
|
CREATE INDEX IF NOT EXISTS idx_bpm ON tracks(bpm);
|