60 lines
2.5 KiB
SQL
60 lines
2.5 KiB
SQL
alter table music_sessions_history
|
|
add constraint music_sessions_history_pkey PRIMARY KEY (id);
|
|
|
|
CREATE TABLE likes
|
|
(
|
|
id character varying(64) NOT NULL DEFAULT uuid_generate_v4(),
|
|
liker_id character varying(64) NOT NULL,
|
|
user_id character varying(64),
|
|
band_id character varying(64),
|
|
session_id character varying(64),
|
|
recording_id character varying(64),
|
|
likable_type character varying(25),
|
|
created_at timestamp without time zone NOT NULL DEFAULT now(),
|
|
updated_at timestamp without time zone NOT NULL DEFAULT now(),
|
|
CONSTRAINT likes_pkey PRIMARY KEY (id),
|
|
CONSTRAINT liker_fkey FOREIGN KEY (liker_id)
|
|
REFERENCES users (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT user_likes_fkey FOREIGN KEY (user_id)
|
|
REFERENCES users (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT bands_likes_fkey FOREIGN KEY (band_id)
|
|
REFERENCES bands (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT session_likes_fkey FOREIGN KEY (session_id)
|
|
REFERENCES music_sessions_history (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT recording_likes_fkey FOREIGN KEY (recording_id)
|
|
REFERENCES recordings (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT user_likes_uniqkey UNIQUE (liker_id, user_id),
|
|
CONSTRAINT band_likes_uniqkey UNIQUE (liker_id, band_id),
|
|
CONSTRAINT session_likes_uniqkey UNIQUE (liker_id, session_id),
|
|
CONSTRAINT recording_likes_uniqkey UNIQUE (liker_id, recording_id)
|
|
);
|
|
|
|
CREATE TABLE followings
|
|
(
|
|
id character varying(64) NOT NULL DEFAULT uuid_generate_v4(),
|
|
follower_id character varying(64) NOT NULL,
|
|
user_id character varying(64),
|
|
band_id character varying(64),
|
|
followable_type character varying(25),
|
|
created_at timestamp without time zone NOT NULL DEFAULT now(),
|
|
updated_at timestamp without time zone NOT NULL DEFAULT now(),
|
|
CONSTRAINT followings_pkey PRIMARY KEY (id),
|
|
CONSTRAINT follower_fkey FOREIGN KEY (follower_id)
|
|
REFERENCES users (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT user_followings_fkey FOREIGN KEY (user_id)
|
|
REFERENCES users (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT bands_followings_fkey FOREIGN KEY (band_id)
|
|
REFERENCES bands (id) MATCH SIMPLE
|
|
ON UPDATE NO ACTION ON DELETE CASCADE,
|
|
CONSTRAINT user_followings_uniqkey UNIQUE (follower_id, user_id),
|
|
CONSTRAINT band_followings_uniqkey UNIQUE (follower_id, band_id)
|
|
);
|
|
|