Skip to content

Database Schema

brentarimoto edited this page May 23, 2021 · 14 revisions

Database Schema

users

column name data type details
id INT NOT NULL, PRIMARY KEY
username STRING(50) NOT NULL, UNIQUE
email STRING(255) NOT NULL, UNIQUE
hashed_password STRING.BINARY NOT NULL
firstname STRING(255) NOT NULL
lastname STRING(255) NOT NULL
online_status BOOLEAN NOT NULL
profile_photo TEXT
createdAt DATETIME NOT NULL
updatedAt DATETIME NOT NULL

Ref: "users"."id" < "channel_messages"."userId" Ref: "users"."id" < "groups_messages"."userId"

direct_messages

column name data type details
id INT NOT NULL, PRIMARY KEY
sender_id INT NOT NULL
recipient_id INT NOT NULL
message TEXT NOT NULL

Ref: "direct_messages"."senderId" < "users"."id" Ref: "direct_messages"."recipientId" < "users"."id"

channels

column name data type details
id INT NOT NULL, PRIMARY KEY
user_id INT NOT NULL
name STRING(255) NOT NULL
is_channel BOOLEAN NOT NULL, DEFAULT=TRUE

channels_users

column name data type details
id INT NOT NULL, PRIMARY KEY
user_id INT NOT NULL
channel_id INT NOT NULL

Ref: "channels_users"."userId" < "users"."id" Ref: "channels_users"."channelId" < "channels"."id"

channel_messages

column name data type details
id INT NOT NULL, PRIMARY KEY
user_id INT NOT NULL
channel_id INT NOT NULL
message TEXT NOT NULL

Ref: "channel_messages"."channelId" < "channels"."id"

Slack_Temp_Schema

Clone this wiki locally