schema - Hubear41/Hu-sflix GitHub Wiki
Database Schema
users
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
email |
string | not null, indexed, unique |
password_digest |
string | not null |
session_token |
string | not null |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
username, unique: true
- index on
email, unique: true
- index on
session_token, unique: true
profiles
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
user_id |
integer | not null, indexed |
name |
string | not null |
image_url |
string | not null |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
user_id
- index on
[user_id, name], unique: true
mylist_videos
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
profile_id |
integer | not null, indexed |
video_id |
integer | not null, indexed |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
profile_id
- index on
video_id
watched_videos
column name | data type | details |
---|---|---|
profile_id |
integer | not null, indexed |
video_id |
integer | not null, indexed |
last_watched_time |
integer | not null |
created_at |
datatime | not null |
modified_at |
datetime | not null |
- index on
profile_id
- index on
video_id
last_watched_time
is in seconds
videos
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
video_url |
string | not null, unique |
show_id |
integer | not null, indexed |
episode_num |
integer | |
name |
string | not null |
description |
string | not null |
type |
string | not null |
runtime |
integer | not null |
credits_time |
integer | |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
show_id
type
is eitherPREVIEW
,FILM
, orEPISODE
shows
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
poster_url |
string | not null |
title |
string | not null |
director |
string | not null |
tagline |
string | not null |
year |
integer | |
maturity rating |
string | |
view_count |
integer | not null |
type |
string | not null |
created_at |
datetime | not null |
modified_at |
datetime | not null |
type
is eitherFEATURE
orEPISODIC
likes
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
profile_id |
integer | not null, indexed |
show_id |
integer | not null, indexed |
rating |
integer | not null |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
profile_id
- index on
show_id
- index on
[profile_id, show_id], unique: true
show_genres
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
show_id |
integer | not null, indexed |
genre_id |
integer | not null, indexed |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
movie_id
- index on
genre_id
genre
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
name |
string | not null, unique |
created_at |
datetime | not null |
modified_at |
datetime | not null |
name
isunique: true
recommened_genres
column name | data type | details |
---|---|---|
id |
integer | not null, primary key |
genre_id |
integer | not null, indexed |
profile_id |
integer | not null, indexed |
num_views |
integer | not null |
created_at |
datetime | not null |
modified_at |
datetime | not null |
- index on
genre_id
- index on
profile_id