Database Schema - cgradeff/Spelled GitHub Wiki
Database Tables
users
column |
data type |
details |
id |
integer |
not null, primary key |
username |
string |
not null, indexed, unique |
email |
string |
not null, indexed, unique |
location |
string |
not null |
bio |
string |
|
password_digest |
string |
not null |
session_token |
string |
not null, indexed, unique |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
username
, email
, session_token
unique: true
listings
column |
data type |
details |
id |
integer |
not null, primary key |
author_id |
integer |
not null, foreign key |
title |
string |
not null, indexed |
body |
text |
|
price |
integer |
not null, indexed |
offer |
boolean |
not null |
sold |
boolean |
not null, indexed |
condition |
string |
not null, indexed |
color |
string |
not null, indexed |
rarity |
string |
not null, indexed |
types |
string |
not null, indexed |
mana |
integer |
indexed |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
title
, body
, price
, condition
, color
, rarity
, types
, mana
, sold
author_id
references users
messages
column |
data type |
details |
id |
integer |
not null, primary key |
body |
text |
not null |
from_id |
integer |
not null, indexed, foreign key |
to_id |
integer |
not null, indexed, foreign key |
list_id |
integer |
not null, indexed, foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
from_id
, to_id
, list_id
from_id
references users
(user sending the message)
to_id
references users
(user recieving the message)
list_id
references listings
(the listing that was messaged about)
reviews
column |
data type |
details |
id |
integer |
not null, primary key |
user_id |
integer |
not null, indexed, foreign key |
list_id |
integer |
not null, indexed, foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
user_id
, list_id
user_id
references users
list_id
references listings
comments
column |
data type |
details |
id |
integer |
not null, primary key |
body |
text |
not null |
author_id |
integer |
not null, indexed, foreign key |
list_id |
integer |
not null, indexed, foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
author_id
, list_id
author_id
referances users
list_id
referances listings
favorites
column |
data type |
details |
id |
integer |
not null, primary key |
user_id |
integer |
not null, indexed, foreign key |
list_id |
integer |
not null, indexed, foreign key |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
user_id
, list_id
user_id
references users
list_id
references listings
image source https://mtg.fandom.com/wiki/Parts_of_a_card?file=Parts_of_a_Magic_card.jpg