Changeset 23cd88b for scripts


Ignore:
Timestamp:
08/05/26 10:46:23 (23 hours ago)
Author:
Filip Gavrilovski <filipgavrilovski28@…>
Branches:
main
Children:
c7f743d
Parents:
947fcaa
Message:

update ddl and dml scripts

Location:
scripts
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • scripts/ddl.sql

    r947fcaa r23cd88b  
    2929    full_name TEXT NOT NULL,
    3030    email TEXT NOT NULL,
    31     password TEXT NOT NULL,
     31    password_hash TEXT NOT NULL,
    3232    username TEXT NOT NULL,
    3333    profile_photo TEXT
     
    8585    name   TEXT NOT NULL,
    8686    created_by BIGINT REFERENCES LISTENERS(user_id) ON DELETE CASCADE
     87);
     88
     89CREATE TABLE CONTRIBUTIONS (
     90    musical_entity_id BIGINT NOT NULL REFERENCES MUSICAL_ENTITIES(id) ON DELETE CASCADE,
     91    artist_id BIGINT NOT NULL REFERENCES ARTISTS(user_id) ON DELETE CASCADE,
     92    contribution_order INT NOT NULL,
     93 
     94    CONSTRAINT contributions_pk
     95        PRIMARY KEY (musical_entity_id, artist_id),
     96 
     97    CONSTRAINT contributions_order_positive
     98        CHECK (contribution_order > 0),
     99);
     100
     101CREATE TABLE ROLES (
     102    role_id BIGINT PRIMARY KEY,
     103    name TEXT NOT NULL,
     104 
     105    CONSTRAINT roles_name_unique UNIQUE (name)
    87106);
    88107
     
    152171);
    153172
    154 CREATE TABLE ARTIST_CONTRIBUTIONS (
    155     artist_id BIGINT REFERENCES ARTISTS(user_id) ON DELETE CASCADE,
    156     musical_entity_id BIGINT REFERENCES MUSICAL_ENTITIES(id) ON DELETE CASCADE,
    157     role TEXT NOT NULL,
    158 
    159     CONSTRAINT artist_contribution_id
    160         PRIMARY KEY (artist_id, musical_entity_id)
     173CREATE TABLE CONTRIBUTION_ROLES (
     174    musical_entity_id BIGINT NOT NULL,
     175    artist_id BIGINT NOT NULL,
     176    role_id BIGINT NOT NULL REFERENCES ROLES(role_id),
     177 
     178    CONSTRAINT contribution_roles_pk
     179        PRIMARY KEY (musical_entity_id, artist_id, role_id),
     180 
     181    CONSTRAINT contribution_roles_contribution_fk
     182        FOREIGN KEY (musical_entity_id, artist_id)
     183        REFERENCES CONTRIBUTIONS(musical_entity_id, artist_id)
     184        ON DELETE CASCADE
    161185);
  • scripts/dml.sql

    r947fcaa r23cd88b  
    11SET search_path TO project;
    22
    3 INSERT INTO USERS (user_id, full_name, email, password, username, profile_photo) VALUES
     3INSERT INTO USERS (user_id, full_name, email, password_hash, username, profile_photo) VALUES
    44(1, 'Dimitar Arsov', 'dimitararsov04@gmail.com', '$2a$10$Vl6VE03lIQmGL/dW2/Ly9emzc7upycbosyjBKjIY93TbN5b1rB1Ry', 'dimitar_arsov2', null),
    55(2, 'Filip Gavrilovski', 'filipgavrilovski28@gmail.com','$2a$10$oxZZfDwH9ixVdLjnaopmJufBqQpcgPp9e/Bv8aN1Kp/r.EyLIfyoi', 'filip_gavrilovski1', null),
     
    111111(13, 19,'2025-11-30 10:10:54+02'),
    112112(7, 21,'2025-12-06 21:23:54+02'),
    113 (14, 23,'2025-12-09 23:23:54+02'),
    114113(15, 13,'2025-12-30 21:23:54+02'),
    115114(16, 17,'2025-12-28 19:23:54+02'),
     
    121120(8, 18,'2026-01-05 11:23:54+02'),
    122121(2, 18,'2025-12-18 10:34:54+02'),
    123 (2, 12,'2026-02-19 16:23:54+02'),
    124 (1, 13,'2025-12-19 11:13:54+02');
     122(2, 12,'2026-02-19 16:10:54+02'),
     123(1, 13,'2025-12-19 15:13:56+02');
    125124
    126125
     
    141140(11,2), (13,2), (16,2);
    142141
    143 INSERT INTO  ARTIST_CONTRIBUTIONS (musical_entity_id, artist_id, role) VALUES
    144 (1,8,'MAIN_VOCAL'), (2,8,'MAIN_VOCAL'),(3,8,'MAIN_VOCAL'),
    145 (4,8,'MAIN_VOCAL'),(5,8,'MAIN_VOCAL'),(6,9,'MAIN_VOCAL'),
    146 (7,9,'MAIN_VOCAL'),(8,9,'MAIN_VOCAL'),(9,9,'MAIN_VOCAL'),
    147 (10,9,'MAIN_VOCAL'),(11,7,'MAIN_VOCAL'),(12,7,'MAIN_VOCAL'),
    148 (13,7,'MAIN_VOCAL'),(14,7,'MAIN_VOCAL'),(15,7,'MAIN_VOCAL'),
    149 (16,12,'MAIN_VOCAL'),(17,12,'MAIN_VOCAL'),(18,10,'MAIN_VOCAL'),
    150 (19,10,'MAIN_VOCAL'),(20,10,'MAIN_VOCAL'),(21,10,'MAIN_VOCAL');
     142INSERT INTO CONTRIBUTIONS (musical_entity_id, artist_id, contribution_order) VALUES
     143(1,8,1), (2,8,1), (3,8,1), (4,8,1), (5,8,1),
     144(6,9,1), (7,9,1), (8,9,1), (9,9,1), (10,9,1),
     145(11,7,1), (12,7,1), (13,7,1), (14,7,1), (15,7,1),
     146(16,12,1), (17,12,1),
     147(18,10,1), (19,10,1), (20,10,1), (21,10,1),
     148(5,11,2),
     149(13,13,2);
     150
     151INSERT INTO ROLES (role_id, name) VALUES
     152(1, 'Lead Vocal'),
     153(2, 'Backing Vocal'),
     154(3, 'Guitar'),
     155(4, 'Bass'),
     156(5, 'Drums'),
     157(6, 'Keyboards'),
     158(7, 'Strings'),
     159(8, 'Producer'),
     160(9, 'Songwriter'),
     161(10,'Mixing Engineer'),
     162(11,'Mastering Engineer'),
     163(12,'Featured Artist');
     164 
     165INSERT INTO CONTRIBUTION_ROLES (musical_entity_id, artist_id, role_id) VALUES
     166-- Kanye West: lead vocal + producer + songwriter
     167(1,8,1), (1,8,8), (1,8,9),
     168(2,8,1), (2,8,8), (2,8,9),
     169(3,8,1), (3,8,8), (3,8,9),
     170(4,8,1), (4,8,8), (4,8,9),
     171(5,8,1), (5,8,8), (5,8,9),
     172-- The Weeknd: vocal + songwriter
     173(6,9,1), (6,9,9),
     174(7,9,1), (7,9,9),
     175(8,9,1), (8,9,9),
     176(9,9,1), (9,9,9),
     177(10,9,1), (10,9,9),
     178-- Strajk: vocal + songwriter
     179(11,7,1), (11,7,9),
     180(12,7,1), (12,7,9),
     181(13,7,1), (13,7,9),
     182(14,7,1), (14,7,9),
     183(15,7,1), (15,7,9),
     184-- Verica Ristevska: vocal
     185(16,12,1),
     186(17,12,1),
     187-- Bruno Mars: lead vocal + producer + songwriter
     188(18,10,1), (18,10,8), (18,10,9),
     189(19,10,1), (19,10,8), (19,10,9),
     190(20,10,1), (20,10,8), (20,10,9),
     191(21,10,1), (21,10,8), (21,10,9),
     192-- guest appearances
     193(5,11,12), (5,11,1),
     194(13,13,12), (13,13,1);
Note: See TracChangeset for help on using the changeset viewer.