From b450620433a01e699328ed68c9305711d0dabdcd Mon Sep 17 00:00:00 2001 From: Brian Smith Date: Thu, 15 Nov 2012 21:04:35 -0500 Subject: [PATCH] VRFS-81 recordings and favorites --- manifest | 4 +++- up/favorites.sql | 9 +++++++++ up/recordings.sql | 21 +++++++++++++++++++++ 3 files changed, 33 insertions(+), 1 deletion(-) create mode 100644 up/favorites.sql create mode 100644 up/recordings.sql diff --git a/manifest b/manifest index 0603f8c5e..f56858088 100644 --- a/manifest +++ b/manifest @@ -14,4 +14,6 @@ first_last_name.sql account_fields.sql signup.sql bootstrap_users_v2.sql -drop_users_name.sql \ No newline at end of file +drop_users_name.sql +recordings.sql +favorites.sql \ No newline at end of file diff --git a/up/favorites.sql b/up/favorites.sql new file mode 100644 index 000000000..6cf4083f8 --- /dev/null +++ b/up/favorites.sql @@ -0,0 +1,9 @@ +CREATE TABLE users_favorites ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, + recording_id VARCHAR(64) NOT NULL REFERENCES recordings(id) ON DELETE CASCADE, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +ALTER TABLE users_favorites ADD CONSTRAINT user_favorite_uniqkey UNIQUE (user_id, recording_id); diff --git a/up/recordings.sql b/up/recordings.sql new file mode 100644 index 000000000..f5776a073 --- /dev/null +++ b/up/recordings.sql @@ -0,0 +1,21 @@ +CREATE TABLE recordings ( + id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(), + description VARCHAR(200) NOT NULL, + public BOOLEAN NOT NULL DEFAULT true, + created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, + updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP +); + +CREATE TABLE musicians_recordings ( + user_id VARCHAR(64) NOT NULL REFERENCES users(id) ON DELETE CASCADE, + recording_id VARCHAR(64) NOT NULL REFERENCES recordings(id) ON DELETE CASCADE +); + +ALTER TABLE musicians_recordings ADD CONSTRAINT musician_recording_uniqkey UNIQUE (user_id, recording_id); + +CREATE TABLE bands_recordings ( + band_id VARCHAR(64) NOT NULL REFERENCES bands(id) ON DELETE CASCADE, + recording_id VARCHAR(64) NOT NULL REFERENCES recordings(id) ON DELETE CASCADE +); + +ALTER TABLE bands_recordings ADD CONSTRAINT band_recording_uniqkey UNIQUE (band_id, recording_id); \ No newline at end of file