Database Schema - MattMav21/Picture-Perfect-Project GitHub Wiki
1. Users
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| username |
string |
not null, unique |
| email |
string |
not null, unique |
| hashedPassword |
string |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- hasMany Albums (foreign key: userId)
- hasMany Pictures (foreign key: userId)
- hasMany Comments (foreign key: userId)
2. Pictures
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| imageLink |
string |
not null |
| title |
string |
|
| description |
string |
|
| userId |
integer |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- hasMany Comments (foreign key: pictureId)
- hasMany Picture_Comments (foreign key: pictureId)
- hasMany Tags (foreign key: pictureId)
- hasMany Album_Pictures (foreign key: pictureId)
- belongsToOne User (foreign key: userId)
- belongsToMany Albums (foreign key: albumId)
3. Albums
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| title |
string |
|
| description |
string |
|
| userId |
integer |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- hasMany Comments (foreign key: albumId)
- hasMany Pictures (foreign key: albumId)
- hasMany Album_Pictures (foreign key: albumId)
- hasMany Tags (foreign key: albumId)
- belongsToOne User (foreign key: userId)
4. Album_Pictures
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| albumId |
integer |
not null |
| pictureId |
integer |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- belongsToOne Album (foreign key: albumId)
- belongsToOne Picture (foreign key: pictureId)
Comments
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| value |
string |
not null |
| userId |
string |
not null |
| pictureId |
string |
not null |
| albumId |
string |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- hasMany Picture_Comments (foreign key: commentId)
- belongsToOne User (foreign key: userId)
- belongsToOne Album (foreign key: albumId)
- belongsToOne Picture (foreign key: pictureId)
Album_Comments
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| albumId |
string |
not null |
| commentId |
string |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- belongsToOne Album (foreign key: albumId)
- belongsToOne Comment (foreign key: commentId)
Picture_Comments
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| pictureId |
string |
not null |
| commentId |
string |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- belongsToOne Picture (foreign key: pictureId)
- belongsToOne Comment (foreign key: commentId)
Tags
| Column Name |
Data Type |
Details |
| id |
integer |
not null, primary key |
| query |
string |
not null |
| albumId |
string |
not null |
| pictureId |
string |
not null |
| createdAt |
datetime |
not null |
| updatedAt |
datetime |
not null |
- Sequelize Associations
- belongsToOne Album (foreign key: albumId)
- belongsToOne Picture (foreign key: pictureId)