-
Notifications
You must be signed in to change notification settings - Fork 0
Database Schema
Chris Vo edited this page Jan 10, 2020
·
10 revisions
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
username | string | not null, indexed, unique |
string | not null, indexed, unique | |
password_digest | string | not null, unique |
session_token | string | not null, indexed, unique |
status | string | not null |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
username, unique: true
- index on
email, unique: true
- index on
session_token, unique: true
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
user_id_1 | integer | not null, indexed, unique |
user_id_2 | integer | not null, indexed, unique |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
[user_id_1, user_id_2], unique: true
-
user_id_1
referencesUser
-
user_id_2
referencesUser
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
name | string | not null, indexed, unique |
owner_id | integer | foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
name, unique: true
-
owner_id
referencesUsers
-
Note:
owner_id
can be null in the case of private servers
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
user_id | integer | not null, indexed, foreign key |
server_id | integer | not null, indexed, foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
[user_id, server_id], unique: true
-
user_id
referencesUsers
-
server_id
referencesServers
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
name | string | not null, indexed, unique |
server_id | integer | not null, indexed, foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
name, unique: true
- index on
server_id
-
server_id
referencesServer
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
body | text | not null |
author_id | integer | not null, indexed, foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
author_id
-
author_id
referencesUsers
Column Name | Data Type | Details |
---|---|---|
id | integer | not null, primary key |
message_id | integer | not null, foreign key |
channel_id | integer | not null, indexed, foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
channel_id
-
message_id
referencesMessages
-
channel_id
referencesChannel
Column Name | Data Type | Details |
---|---|---|
id | integer | not null |
message_id | integer | not null, foreign key |
server_id | integer | not null, indexed, foreign key |
created_at | datetime | not null |
updated_at | datetime | not null |
- index on
recipient_id
-
message_id
referencesrecipient_id
-
recipient_id
referencesUsers