43 lines
1.9 KiB
SQL
43 lines
1.9 KiB
SQL
-- musicians
|
|
CREATE TABLE users_likers (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
liker_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE users_likers ADD CONSTRAINT user_liker_uniqkey UNIQUE (user_id, liker_id);
|
|
|
|
-- bands
|
|
CREATE TABLE bands_likers (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE,
|
|
liker_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE bands_likers ADD CONSTRAINT band_liker_uniqkey UNIQUE (band_id, liker_id);
|
|
|
|
-- recordings
|
|
CREATE TABLE recordings_likers (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
recording_id VARCHAR(64) NOT NULL REFERENCES recordings(id) ON DELETE CASCADE,
|
|
liker_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE recordings_likers ADD CONSTRAINT recording_liker_uniqkey UNIQUE (recording_id, liker_id);
|
|
|
|
-- sessions
|
|
CREATE TABLE music_sessions_likers (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
music_session_id VARCHAR(64) NOT NULL REFERENCES music_sessions(id) ON DELETE CASCADE,
|
|
liker_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE music_sessions_likers ADD CONSTRAINT music_sessions_liker_uniqkey UNIQUE (music_session_id, liker_id); |