Database Schema - OByrnes/chatter-app GitHub Wiki

Users
column name |
datatype |
details |
id |
integer |
primary key, not null |
username |
string |
not null |
email |
string |
not null, unique |
hashed_password |
string |
not null |
blob_id |
integer |
foreign key |
- index on
email
, unique: true
blob_id
references Blobs
table, nullable: true
Messages
column name |
datatype |
details |
id |
integer |
primary key, not null |
body |
text |
not null |
user_id |
integer |
not null, foreign key |
conversation_id |
integer |
not null, foreign key |
created_at |
datetime |
not null |
blob_id |
integer |
foreign key |
user_id
references Users
table
conversation_id
references Conversations
table
blob_id
references Blobs
table, nullable: true
Conversations
column name |
datatype |
details |
id |
integer |
primary key, not null |
name |
string |
not null |
UsersConversations
column name |
datatype |
details |
id |
integer |
primary key, not null |
user_id |
integer |
not null, foreign key |
conversation_id |
integer |
not null, foreign key |
user_id
references Users
table
conversation_id
references Conversations
table
Notifications
column name |
datatype |
details |
id |
integer |
primary key, not null |
user_id |
integer |
not null, foreign key |
notifiable_id |
integer |
not null, foreign key |
notifiable_type |
enum |
not null |
user_id
references Users
table
notifiable_id
and notifiable_type
combination references Messages
, Blocks
, or Friends
table
Friends
column name |
datatype |
details |
id |
integer |
primary key, not null |
user_id |
integer |
not null, foreign key |
friend_id |
integer |
not null, foreign key |
user_id
references Users
table
friend_id
references Users
table
Blocks
column name |
datatype |
details |
id |
integer |
primary key, not null |
user_id |
integer |
not null, foreign key |
enemy_id |
integer |
not null, foreign key |
user_id
references Users
table
enemy_id
references Users
table
Blobs
column name |
datatype |
details |
id |
integer |
primary key, not null |
body |
varbinary |
not null |
file_extension |
string |
not null |