32 lines
1.3 KiB
SQL
32 lines
1.3 KiB
SQL
DROP TABLE bands_musicians;
|
|
DROP TABLE musicians_instruments;
|
|
DROP TABLE musicians;
|
|
|
|
ALTER TABLE users ADD COLUMN musician BOOLEAN NOT NULL DEFAULT false;
|
|
ALTER TABLE bands ADD COLUMN website VARCHAR(4000) NULL;
|
|
ALTER TABLE bands ADD COLUMN biography VARCHAR(4000) NOT NULL;
|
|
|
|
-- musician -> band mapping
|
|
CREATE TABLE bands_users (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
band_id VARCHAR(64) REFERENCES bands(id) ON DELETE CASCADE,
|
|
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
|
is_admin BOOLEAN NOT NULL DEFAULT false,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE bands_users ADD CONSTRAINT band_user_uniqkey UNIQUE (band_id, user_id);
|
|
|
|
-- musician -> instrument mapping
|
|
CREATE TABLE users_instruments (
|
|
id VARCHAR(64) PRIMARY KEY DEFAULT uuid_generate_v4(),
|
|
user_id VARCHAR(64) REFERENCES users(id) ON DELETE CASCADE,
|
|
instrument_id VARCHAR(64) REFERENCES instruments(id) ON DELETE CASCADE,
|
|
proficiency_level SMALLINT NOT NULL,
|
|
created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
ALTER TABLE users_instruments ADD CONSTRAINT user_instrument_uniqkey UNIQUE (user_id, instrument_id);
|