[sql] bandlab

Viewer

  1. CREATE DATABASE `Bandlab`;
  2. CREATE SCHEMA users;
  3. CREATE SCHEMA distribution;
  4. CREATE SCHEMA tracks_data;
  5. CREATE SCHEMA social;
  6.  
  7. ------------------------------
  8.  
  9. CREATE TABLE distribution.revenue(
  10.         revenue_id SERIAL PRIMARY KEY,
  11.         total_revenue INT
  12.        
  13. );
  14.  
  15. ------------------------------
  16.  
  17. CREATE TABLE distribution.labels(
  18.         label_id SERAIL PRIMARY KEY,
  19.         label_name VARCHAR(10) UNIQUE NOT NULL,
  20.         commisoin_per_track INT,
  21.         total_commision INT
  22. )
  23.  
  24. ------------------------------
  25.  
  26. CREATE TABLE tracks_data.albums(
  27.         album_id SERIAL PRIMARY KEY,
  28.         album_name VARCHAR(10),
  29.         number_of_tracks INT
  30. );
  31.  
  32. -------------------------------
  33.  
  34. CREATE TABLE users.user_details(
  35.         user_id SERIAL PRIMARY KEY,
  36.         email_address VARCHAR (20) UNIQUE NOT NULL,
  37.         phone_number INT NOT NULL,
  38.         artist_name VARCHAR (20) UNIQUE NOT NULL,
  39.         followings INT,
  40.         followers INT,
  41.         tracks_uploaded INT,
  42.         total_listen_hours INT,
  43.         revenue_id INT NOT NULL,
  44.         collabs INT,
  45.         label_id INT NOT NULL,
  46.  
  47.         FOREIGN KEY (label_id)
  48.                 REFERENCES distribution.labels (label_id)
  49. )
  50.  
  51. --------------------------------------------
  52.  
  53.  
  54. CREATE TABLE tracks_data.track(
  55.         track_name VARCHAR(10) NOT NULL,
  56.         track_id SERIAL PRIMARY KEY,
  57.         user_id INT NOT NULL,
  58.         album_id INT NOT NULL,
  59.         duration TIMESTAMP,
  60.         date_of_upload DATE,
  61.         number_of_plays INT,
  62.         likes INT,
  63.         downloads INT,
  64.         shares INT,
  65.        
  66.         FOREIGN KEY (user_id)
  67.                 REFERENCES users.user_details(user_id),
  68.         FOREIGN KEY (album_id)
  69.                 REFERENCES tracks_data.albums(album_id)
  70. );
  71.  
  72. -----------------------------------------------
  73.  
  74. CREATE TABLE tracks_data.album_track(
  75.         album_track_id SERIAL PRIMARY KEY,
  76.         album_id INT NOT NULL,
  77.         track_id INT NOT NULL,
  78.        
  79.         FOREIGN KEY (album_id)
  80.                 REFERENCES tracks_data.albums (album_id),
  81.         FOREIGN KEY (track_id)
  82.                 REFERENCES tracks_data.track (track_id)
  83. );
  84.  
  85. ------------------------------------------------
  86.  
  87. CREATE TABLE tracks_data.playlists(
  88.         playlist_id INT PRIMARY KEY,
  89.         user_id INT NOT NULL,
  90.        
  91.         FOREIGN KEY (user_id)
  92.                 REFERENCES users.user_details (user_id)
  93.        
  94. );
  95.  
  96. -----------------------------------------------
  97.  
  98. CREATE TABLE tracks_data.playlist_tracks(
  99.         playlist_track_id SERIAL PRIMARY KEY,
  100.         playlist_id INT NOT NULL,
  101.         track_id INT NOT NULL,
  102.        
  103.        
  104.         FOREIGN KEY (playlist_id)
  105.                 REFERENCES tracks_data.playlists(playlist_id),
  106.         FOREIGN KEY (track_id)
  107.                 REFERENCES tracks_data.track (track_id)
  108. );
  109.  
  110. ------------------------------------------------
  111.  
  112. CREATE TABLE social.post_details(
  113.         user_id INT NOT NULL,
  114.         post_id SERIAL PRIMARY KEY,
  115.         likes INT,
  116.         shares INT, 
  117.         insights INT,
  118.         date_of_upload DATE,
  119.         time_of_upload TIMESTAMP,
  120.        
  121.         FOREIGN KEY (user_id)
  122.                 REFERENCES users.user_details (user_id)
  123.        
  124. );
  125.  
  126. --------------------------------------------------
  127.  
  128. CREATE TABLE distribution.revenue_track(
  129.        revenue_track_id SERIAL PRIMARY KEY,
  130.         track_id INT NOT NULL,
  131.         label_id INT NOT NULL,
  132.         revenue_id INT NOT NULL,
  133.        
  134.         FOREIGN KEY (revenue_id)
  135.                 REFERENCES distribution.revenue (revenue_id),
  136.         FOREIGN KEY (label_id)
  137.                 REFERENCES distribution.labels(label_id)
  138. );
  139.  
  140. -----------------------------------------------------
  141.  

Editor

You can edit this paste and save as new:


File Description
  • bandlab
  • Paste Code
  • 23 May-2022
  • 3.07 Kb
You can Share it: