Slack
Complete database schema for a Slack-like team communication platform featuring workspaces, channels, direct messages, threads, emoji reactions, file attachments, apps and integrations, user groups, and notification preferences.
messagingcollaborationteamreal-timeworkspace
MySQL10 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique user identifier
User's email address used for login
Hashed password for authentication
Name shown in messages and profile
URL to user's avatar image
User's preferred timezone string
Whether account is active
Timestamp of user's last activity
Account creation timestamp
Last profile update timestamp
IXUQCK|💬
MySQL9 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique workspace identifier
Workspace display name
URL-friendly workspace identifier
Brief description of the workspace
Workspace icon image URL
User who created the workspace
Subscription plan: free, pro, business
Workspace creation timestamp
Last update timestamp
IXUQCK|💬
MySQL8 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique membership record
Workspace joined
Member user
Role: owner, admin, or member
Custom display name within workspace
Job title shown in workspace
When user joined the workspace
Last update timestamp
IXUQCK|💬
MySQL11 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique channel identifier
Workspace this channel belongs to
Channel name without the # symbol
Channel purpose/topic
Whether channel is private
Whether channel has been archived
User who created the channel
Current channel topic
Number of members in channel
Channel creation timestamp
Last update timestamp
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique channel membership record
Channel joined
Member user
Whether user is a channel admin
Timestamp of user's last read message
When user joined the channel
Last update timestamp
IXUQCK|💬
MySQL11 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique message identifier
Channel where message was posted
User who sent the message
Message text content, supports Markdown
Parent message id if this is a thread reply
Number of replies in thread
Whether message has been edited
Timestamp of last edit
Whether message is pinned in channel
Message send timestamp
Soft-delete timestamp, null if active
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique reaction record
Message that was reacted to
User who added the reaction
Emoji name or unicode character
When reaction was added
Last update timestamp
Workspace context for custom emojis
IXUQCK|💬
MySQL9 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique attachment identifier
Message this attachment belongs to
Original file name
MIME type of the file
File size in bytes
CDN URL to download the file
Thumbnail URL for image previews
User who uploaded the file
Upload timestamp
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique DM conversation identifier
Workspace context
Whether this is a group DM
Group DM name, null for 1:1 DMs
User who started the conversation
Conversation start timestamp
Last message timestamp
IXUQCK|💬
MySQL6 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique DM membership record
DM conversation
Participant user
Timestamp of last read message
When user joined the DM
Last update timestamp
IXUQCK|💬
MySQL8 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique user group identifier
Workspace this group belongs to
Group display name
Mentionable handle e.g. @team-eng
Group purpose description
User who created the group
Group creation timestamp
Last update timestamp
IXUQCK|💬
MySQL6 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique group membership record
User group
Member user
User who added this member
When user was added to group
Last update timestamp
IXUQCK|💬
MySQL9 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique app identifier
App display name
App description and functionality
App icon image URL
Incoming webhook URL for the app
Developer who created the app
Whether app is verified by platform
App creation timestamp
Last update timestamp
IXUQCK|💬
MySQL8 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Unique installation record
Installed app
Workspace where app is installed
User who installed the app
OAuth access token for app
Granted permission scopes
Installation timestamp
Last update timestamp
IXUQCK|💬
Press enter or space to select a node. You can then use the arrow keys to move the node around. Press delete to remove it and escape to cancel.
Press enter or space to select an edge. You can then press delete to remove it or escape to cancel.
Created with ERD Studio
Tables in this template
usersUsers
10 colsworkspacesWorkspaces
9 colsworkspace_membersWorkspace Members
8 colschannelsChannels
11 colschannel_membersChannel Members
7 colsmessagesMessages
11 colsmessage_reactionsMessage Reactions
7 colsmessage_attachmentsMessage Attachments
9 colsdirect_messagesDirect Messages
7 colsdm_membersDM Members
6 colsuser_groupsUser Groups
8 colsuser_group_membersUser Group Members
6 colsappsApps
9 colsapp_installationsApp Installations
8 colsRelated Templates
View all templates →GitHub
CloneCode hosting platform with repositories, issues, pull requests, and CI/CD
PostgreSQL16 tables
developer-toolsgitcollaboration+2
Web App
Netflix
CloneVideo streaming platform with content catalog, profiles, subscriptions, and recommendations
PostgreSQL15 tables
streamingvideosubscription+2
Web App
Spotify
CloneMusic streaming platform with tracks, artists, albums, playlists, and social features
PostgreSQL18 tables
musicstreamingplaylist+2
Web App
Discord
CloneCommunity platform with servers, channels, roles, voice, and bots
PostgreSQL15 tables
gamingcommunityvoice+2
Web App