Skip to content

Database Schema

Adam Tang edited this page May 4, 2023 · 1 revision

soundtown_db

Database Schema

users

column name data type details
id integer not null, primary key
email string not null, indexed, unique
hashed_password string not null
display_name string not null,
avatar_url string
banner_url string
created_at datetime not null
updated_at datetime not null

songs

column name data type details
id integer not null, primary key
title string not null
audio_url string not null
user_id integer not null, foreign key
description string
image_url string
created_at datetime not null
updated_at datetime not null
  • user_id references users table

comments

column name data type details
id integer not null, primary key
content string not null
user_id integer not null, foreign key
song_id integer not null, foreign key
song_timestamp datetime
created_at datetime not null
updated_at datetime not null
  • user_id references users table
  • song_id references songs table

song_likes

column name data type details
user_id integer not null, indexed, foreign key
song_id integer not null, indexed, foreign key
  • user_id references users table
  • song_id references songs table

playlists

column name data type details
id integer not null, primary key
title string not null
user_id integer not null, foreign key
songs_order string not null
image_url string
description string
created_at datetime not null
updated_at datetime not null
  • user_id references users table

playlists_songs

column name data type details
song_id integer not null, indexed, foreign key
playlist_id integer not null, indexed, foreign key
  • song_id references songs table
  • playlist_id references playlists table

playlist_likes

column name data type details
user_id integer not null, indexed, foreign key
playlist_id integer indexed, foreign key
  • user_id references users table
  • playlist_id references playlists table