Bonus Schema - Numie/FoodDotCom GitHub Wiki

users

Column Name Data Type Details
id integer primary key, not null
first_name string not null
last_name string not null
email string not null, unique, indexed
password_digest string not null
session_token string not null, unique, indexed
created_at datetime not null
updated_at datetime not null

restaurants

Column Name Data Type Details
id integer primary key, not null
name string not null, unique
address string not null
phone string not null
img_url string not null
cuisine string not null
delivery_minimum float not null
delivery_fee float not null, default: 0
open_time time not null
close_time time not null
latitude float not null
longitude float not null
created_at datetime not null
updated_at datetime not null

menu_sections

Column Name Data Type Details
id integer primary key, not null
restaurant_id integer not null, indexed, foreign_key
name string not null
description text
open_time time not null
close_time time not null
created_at datetime not null
updated_at datetime not null

menu_items

Column Name Data Type Details
id integer primary key, not null
restaurant_id integer not null, indexed, foreign_key
menu_section_id integer not null, foreign_key
name string not null
description text
price float not null
created_at datetime not null
updated_at datetime not null

item_option_sections

Column Name Data Type Details
id integer primary key, not null
item_id integer not null, indexed, foreign_key
name string not null
description text
required boolean inclusion in [true, false], default: false
min_allowed integer not null
max_allowed integer not null
created_at datetime not null
updated_at datetime not null

item_options

Column Name Data Type Details
id integer primary key, not null
item_id integer not null, indexed, foreign_key
item_option_section_id integer not null, foreign_key
name string not null
description text
price float not null, default: 0
created_at datetime not null
updated_at datetime not null

orders

Column Name Data Type Details
id integer primary key, not null
user_id integer not null, indexed, foreign_key
restaurant_id integer not null, indexed, foreign_key
subtotal float not null
tax float not null
tip float
delivery fee float not null, default: 0
total float not null
special_instructions text
created_at datetime not null
updated_at datetime not null

order_items

Column Name Data Type Details
id integer primary key, not null
order_id integer not null, indexed, foreign_key
item_id integer not null, indexed, foreign_key
quantity integer not null
item_instructions text
created_at datetime not null
updated_at datetime not null

order_options

Column Name Data Type Details
id integer primary key, not null
order_item_id integer not null, indexed, foreign_key
option_id integer not null, indexed, foreign_key
created_at datetime not null
updated_at datetime not null

reviews

Column Name Data Type Details
id integer primary key, not null
user_id integer not null, indexed, foreign_key
restaurant_id integer not null, indexed, foreign_key
rating integer not null
review text not null
created_at datetime not null
updated_at datetime not null