Trello Clone
Complete database schema for a Trello-like kanban project management platform featuring workspaces, boards with member access control, ordered lists, draggable cards with rich metadata, labels, checklists with progress tracking, file attachments, card comments, activity feeds, and subscription management.
kanbanproject-managementtaskstrello
MySQL9 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique user identifier
Unique email address used for login and notifications
User display name shown across the application
Bcrypt-hashed password for secure authentication
URL to the user profile picture
Short biography or description on the user profile
Whether the user email has been confirmed
Timestamp when the account was registered
Timestamp when the account was last modified
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique workspace identifier
Display name of the workspace visible to all members
Optional description explaining the workspace purpose
FK to users: the user who created and owns the workspace
URL to the workspace logo image
Timestamp when the workspace was created
Timestamp when the workspace was last updated
IXUQCK|💬
MySQL5 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique workspace membership identifier
FK to workspaces: the workspace the user belongs to
FK to users: the member user
Member role within the workspace: admin or member
Timestamp when the user joined the workspace
IXUQCK|💬
MySQL9 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique board identifier
FK to workspaces: the workspace this board belongs to
Display name of the board shown in the workspace
Optional description for the board purpose or scope
Background color or image URL for the board
Whether the board is archived and hidden from default views
Board visibility level: private, workspace, or public
Timestamp when the board was created
Timestamp when the board was last updated
IXUQCK|💬
MySQL5 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique board membership identifier
FK to boards: the board the user has access to
FK to users: the user with board access
Member role on this board: admin or member
Timestamp when the user was added to the board
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique list identifier
FK to boards: the board this list belongs to
Display name of the list (e.g. To Do, In Progress, Done)
Fractional index for flexible list ordering without reindexing
Whether the list is archived and hidden from the board view
Timestamp when the list was created
Timestamp when the list was last modified
IXUQCK|💬
MySQL5 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique label identifier
FK to boards: the board this label belongs to
Optional name or title of the label
Hex color code used to visually distinguish the label
Timestamp when the label was created
IXUQCK|💬
MySQL10 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique card identifier
FK to lists: the list this card currently belongs to
Brief title of the card describing the task
Detailed markdown description of the card content
Fractional index for flexible card ordering within a list
Deadline timestamp for completing the card task
URL to the cover image displayed at the top of the card
Whether the card has been archived and hidden from the board
Timestamp when the card was created
Timestamp when the card was last modified
IXUQCK|💬
MySQL4 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique card assignment record identifier
FK to cards: the card the user is assigned to
FK to users: the user assigned to the card
Timestamp when the user was assigned to this card
IXUQCK|💬
MySQL4 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique card-label association identifier
FK to cards: the card receiving the label
FK to labels: the label applied to the card
Timestamp when the label was applied to the card
IXUQCK|💬
MySQL5 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, globally unique checklist identifier
FK to cards: the card this checklist is attached to
Title of the checklist shown on the card
Ordering position of the checklist among card checklists
Timestamp when the checklist was created
IXUQCK|💬
MySQL7 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique checklist item identifier
FK to checklists: the checklist this item belongs to
Text description of the checklist item task
Whether the checklist item has been marked as done
Ordering position of the item within the checklist
Optional deadline for completing this checklist item
Timestamp when the checklist item was created
IXUQCK|💬
MySQL8 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique attachment identifier
FK to cards: the card this attachment belongs to
FK to users: the user who uploaded the attachment
Display name of the attachment
URL to the attached file or link
MIME type of the attached file (e.g. image/png, application/pdf)
File size in bytes for storage quota tracking
Timestamp when the attachment was uploaded
IXUQCK|💬
MySQL6 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique comment identifier
FK to cards: the card this comment was posted on
FK to users: the user who wrote the comment
Markdown-formatted text content of the comment
Timestamp when the comment was posted
Timestamp when the comment was last edited
IXUQCK|💬
MySQL6 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique activity log entry identifier
FK to cards: the card this activity is related to
FK to users: the user who performed the action
Type of action performed (e.g. moved, assigned, commented)
JSON payload with context about the action (e.g. before/after values)
Timestamp when the activity occurred
IXUQCK|💬
MySQL8 cols
Num
PK
AI
FK
Null
Physical Name
Type
Default
Comment
Primary key, unique subscription record identifier
FK to workspaces: the workspace on this subscription plan
Subscription plan name: free, standard, premium
Current subscription status: active, canceled, or past_due
Start of the current billing period
End of the current billing period before renewal or expiry
Timestamp when the subscription was created
Timestamp when the subscription was last updated
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
9 colsworkspacesWorkspaces
7 colsworkspace_membersWorkspace Members
5 colsboardsBoards
9 colsboard_membersBoard Members
5 colslistsLists
7 colslabelsLabels
5 colscardsCards
10 colscard_membersCard Members
4 colscard_labelsCard Labels
4 colschecklistsChecklists
5 colschecklist_itemsChecklist Items
7 colscard_attachmentsCard Attachments
8 colscard_commentsCard Comments
6 colscard_activitiesCard Activities
6 colssubscriptionsSubscriptions
8 colsRelated Templates
View all templates →Stripe
ClonePayment infrastructure platform with payment intents, subscriptions, invoices, and webhooks
PostgreSQL15 tables
paymentsfintechbilling+2
SaaS
SaaS Multi-Tenant
Multi-tenant SaaS application database with organizations, team members, roles, subscriptions, and API keys.
PostgreSQL10 tables
saasmulti-tenantsubscription+2
SaaS
Analytics Dashboard
Analytics platform database with workspaces, dashboards, widgets, data sources, events, and reports.
PostgreSQL6 tables
analyticsdashboardwidgets+3
SaaS
Helpdesk Ticketing
Helpdesk platform database with agents, customers, tickets, messages, categories, and SLA policies.
PostgreSQL6 tables
helpdeskticketingsupport+3
SaaS