Schema - AndrewYW/harmony GitHub Wiki
Database Schema
users
| column name |
data type |
details |
id |
integer |
not null, primary key |
username |
string |
not null, indexed |
discriminator |
string |
not null, |
discord_id |
integer |
not null, indexed, unique |
image_url |
string |
optional |
email |
string |
not null, indexed, unique |
password_digest |
string |
not null |
session_token |
string |
not null, indexed, unique |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
- index on
session_token, unique: true
- index on
discord_id, unique: true
messages
| column name |
data type |
details |
id |
integer |
not null, primary key |
body |
string |
not null |
author_id |
integer |
not null, indexed, foreign key |
channel_id |
string |
not null, indexed, foreign key |
discord_id |
integer |
not null, indexed, unique |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
author_id references users
channel_id references channels
servers
| column name |
data type |
details |
id |
integer |
not null, primary key |
admin_id |
integer |
not null, indexed, foreign key |
discord_id |
integer |
not null, indexed, unique |
name |
string |
not null, indexed, |
image_url |
string |
optional |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
admin_id references users
channels
| column name |
data type |
details |
id |
integer |
not null, primary key |
server_id |
integer |
not null, indexed, foreign key |
discord_id |
integer |
not null, indexed, unique |
name |
string |
not null, indexed, |
voice |
boolean |
not null, |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
server_id references servers
serverMembers
Servers/Members join table
| column name |
data type |
details |
id |
integer |
not null, primary key |
server_id |
integer |
not null, indexed, foreign key |
user_id |
integer |
not null, indexed, foreign key |
is_admin? |
boolean |
not null, indexed |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
server_id references servers
user_id references users
- index on
[user_id, server_id] unique: true
BONUS
roles
Server member roles join table
| column name |
data type |
details |
id |
integer |
not null, primary key |
server_id |
integer |
not null, indexed, foreign key |
user_id |
integer |
not null, indexed, foreign key |
role_name |
string |
not null |
created_at |
datetime |
not null |
updated_at |
datetime |
not null |
server_id references Servers
user_id references Users