[sql] bandlab
Viewer
*** This page was generated with the meta tag "noindex, nofollow". This happened because you selected this option before saving or the system detected it as spam. This means that this page will never get into the search engines and the search bot will not crawl it. There is nothing to worry about, you can still share it with anyone.
- CREATE DATABASE `Bandlab`;
- CREATE SCHEMA users;
- CREATE SCHEMA distribution;
- CREATE SCHEMA tracks_data;
- CREATE SCHEMA social;
- ------------------------------
- CREATE TABLE distribution.revenue(
- revenue_id SERIAL PRIMARY KEY,
- total_revenue INT
- );
- ------------------------------
- CREATE TABLE distribution.labels(
- label_id SERAIL PRIMARY KEY,
- label_name VARCHAR(10) UNIQUE NOT NULL,
- commisoin_per_track INT,
- total_commision INT
- );
- ------------------------------
- CREATE TABLE tracks_data.albums(
- album_id SERIAL PRIMARY KEY,
- album_name VARCHAR(10),
- number_of_tracks INT
- );
- -------------------------------
- CREATE TABLE users.user_details(
- user_id SERIAL PRIMARY KEY,
- email_address VARCHAR (20) UNIQUE NOT NULL,
- phone_number INT NOT NULL,
- artist_name VARCHAR (20) UNIQUE NOT NULL,
- followings INT,
- followers INT,
- tracks_uploaded INT,
- total_listen_hours INT,
- revenue_id INT NOT NULL,
- collabs INT,
- label_id INT NOT NULL,
- FOREIGN KEY (label_id)
- REFERENCES distribution.labels (label_id)
- );
- --------------------------------------------
- CREATE TABLE tracks_data.track(
- track_name VARCHAR(10) NOT NULL,
- track_id SERIAL PRIMARY KEY,
- user_id INT NOT NULL,
- album_id INT NOT NULL,
- duration TIMESTAMP,
- date_of_upload DATE,
- number_of_plays INT,
- likes INT,
- downloads INT,
- shares INT,
- FOREIGN KEY (user_id)
- REFERENCES users.user_details(user_id),
- FOREIGN KEY (album_id)
- REFERENCES tracks_data.albums(album_id)
- );
- -----------------------------------------------
- CREATE TABLE tracks_data.album_track(
- album_track_id SERIAL PRIMARY KEY,
- album_id INT NOT NULL,
- track_id INT NOT NULL,
- FOREIGN KEY (album_id)
- REFERENCES tracks_data.albums (album_id),
- FOREIGN KEY (track_id)
- REFERENCES tracks_data.track (track_id)
- );
- ------------------------------------------------
- CREATE TABLE tracks_data.playlists(
- playlist_id INT PRIMARY KEY,
- user_id INT NOT NULL,
- FOREIGN KEY (user_id)
- REFERENCES users.user_details (user_id)
- );
- -----------------------------------------------
- CREATE TABLE tracks_data.playlist_tracks(
- playlist_track_id SERIAL PRIMARY KEY,
- playlist_id INT NOT NULL,
- track_id INT NOT NULL,
- FOREIGN KEY (playlist_id)
- REFERENCES tracks_data.playlists(playlist_id),
- FOREIGN KEY (track_id)
- REFERENCES tracks_data.track (track_id)
- );
- ------------------------------------------------
- CREATE TABLE social.post_details(
- user_id INT NOT NULL,
- post_id SERIAL PRIMARY KEY,
- likes INT,
- shares INT,
- insights INT,
- date_of_upload DATE,
- time_of_upload TIMESTAMP,
- FOREIGN KEY (user_id)
- REFERENCES users.user_details (user_id)
- );
- --------------------------------------------------
- CREATE TABLE distribution.revenue_track(
- revenue_track_id SERIAL PRIMARY KEY,
- track_id INT NOT NULL,
- label_id INT NOT NULL,
- revenue_id INT NOT NULL,
- FOREIGN KEY (revenue_id)
- REFERENCES distribution.revenue (revenue_id),
- FOREIGN KEY (label_id)
- REFERENCES distribution.labels(label_id)
- );
- -----------------------------------------------------
Editor
You can edit this paste and save as new: