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 |
| string | not null, unique, indexed, format: {with: /.+@.+..+/} | |
| 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 | |
| open_time | time | not null |
| close_time | time | not null |
| latitude | float | not null, indexed |
| longitude | float | not null, indexed |
| 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 |
| name | string | not null |
| description | text | |
| price | float | not null |
| created_at | datetime | not null |
| updated_at | datetime | not null |
orders (join table)
| 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 | |
| total | float | not null |
| delivery_instructions | string | |
| created_at | datetime | not null |
| updated_at | datetime | not null |
order_items (join table)
| 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, numericality: {only_integer: true, greater_than: 0, less_than: 100} |
| item_instructions | string | |
| 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 | length: {maximum: 2000} |
| created_at | datetime | not null |
| updated_at | datetime | not null |