-
Notifications
You must be signed in to change notification settings - Fork 0
Schema
Gregory Del Carlo edited this page Feb 5, 2021
·
12 revisions
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
username |
string | not null, unique, indexed |
password_digest |
string | not null, indexed |
location |
string |
- User's will also have a photo held by active storage
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
name |
string | not null, unique, indexed |
type |
string | not null |
ABV |
float | not null |
proof |
integer | not null |
description |
string | |
distillery_id |
integer | not null, foreign key, indexed |
- Drinks will have many photos held by active storage
- Drinks will have many reviews
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
name |
string | not null |
- Distilleries will have many drinks
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key, indexed |
rating |
float | not null |
body |
text | not null |
pour |
string | not null, only certain types |
location |
string | |
whiskey_id |
integer | not null, foreign key |
user_id |
integer | not null, foreign key |
- Reviews will have many comments and cheers
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
body |
text | not null |
review_id |
integer | not null |
user_id |
integer | not null |
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
name |
string | not null |
user_id |
integer | not null, foreign key |
- User lists need to be unique so we need to add a unique index on [name, user_id]
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
user_id |
integer | not null, foreign key |
review_id |
integer | not null, foreign key |
- Cheers act as likes to a comment so it will join a user to a review
| column name | data type | details |
|---|---|---|
id |
integer | not null, primary key |
drink_id |
integer | not null, foreign key |
list_id |
integer | not null, foreign key |
- Users can add whiskeys to their lists so this table joins whiskeys to a list
- A drink can only be added to each list once so we need a unique index on [drink_id, list_id]