# FluentBoards Database Schema

FluentBoards Core Advanced

FluentBoards use custom database tables to store all the Boards data. Here are the list of database tables and it's schema to understand overall database design and related data attributes of each model.

# Schema Design

Schema Design

# Database Tables

# _fbs_boards Table

This table stores the basic information of a board.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the board
parent_idINT UNSIGNED NULLFor SuperBoard like Project or Company, for sub-board etc.
titleTEXT NULLTitle of the board, it can be longer than 255 characters.
descriptionLONGTEXT NULLDescription of the board
typeVARCHAR(50) NULLType of the board, e.g., to-do, sales-pipeline, roadmap, task, etc.
currencyVARCHAR(50) NULLCurrency related to the board
backgroundTEXT NULLSerialized array for background settings
settingsTEXT NULLSerialized array for other board settings
created_byINT UNSIGNEDID of the user who created the board
archived_atTIMESTAMP NULLTimestamp when the board was archived
created_atTIMESTAMP NULLTimestamp when the board was created
updated_atTIMESTAMP NULLTimestamp when the board was last updated

# _fbs_board_terms Table

This table is used for storing the board labels and stages.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the term
board_idINT UNSIGNEDID of the board associated with the term
titleVARCHAR(100) NULLTitle of the stage or label. In case of a label, the title can be null with only a color.
slugVARCHAR(100) NULLSlug of the stage or label
typeVARCHAR(50) NOT NULL DEFAULT 'stage'Type of the term: 'stage' or 'label'
positionDECIMAL(10,2) NOT NULL DEFAULT '1'Position of the stage or label. 1 = first, 2 = second, etc.
colorVARCHAR(50) NULLText color of the stage or label
bg_colorVARCHAR(50) NULLBackground color of the stage or label
settingsTEXT NULLSerialized settings for the term
archived_atTIMESTAMP NULLTimestamp when the term was archived
created_atTIMESTAMP NULLTimestamp when the term was created
updated_atTIMESTAMP NULLTimestamp when the term was last updated

# _fbs_tasks Table

This table is used for managing tasks within the board.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the task
parent_idINT UNSIGNED NULLParent task ID if this is a subtask
board_idINT UNSIGNED NULLID of the board the task is in
crm_contact_idBIGINT UNSIGNED NULLUser ID, Contact ID, Deal ID, Subscriber ID, etc.
titleTEXT NULLTitle or name of the task; it can be longer than 255 characters.
slugVARCHAR(255) NULLSlug of the task
typeVARCHAR(50) NULLType of the task, e.g., task, deal, idea, to-do, etc.
statusVARCHAR(50) NULL DEFAULT 'open'Status of the task: open, completed; for boards: won or lost for pipelines
stage_idINT UNSIGNED NULLID of the stage the task is in
sourceVARCHAR(50) NULL DEFAULT 'web'Source of the task, e.g., web, funnel, contact-section, etc.
source_idVARCHAR(255) NULLSource ID related to the task
priorityVARCHAR(50) NULL DEFAULT 'low'Priority of the task: low, medium, high
descriptionLONGTEXT NULLDescription of the task
lead_valueDECIMAL(10,2) DEFAULT 0.00Lead value associated with the task
created_byBIGINT UNSIGNED NULLID of the user who created the task
positionDECIMAL(10,2) NOT NULL DEFAULT '1'Position of the task within the board. 1 = first, 2 = second, etc.
comments_countINT UNSIGNED NULL DEFAULT 0Number of comments associated with the task
issue_numberINT UNSIGNED NULLBoard-specific issue number to track the task
reminder_typeVARCHAR(100) NULL DEFAULT 'none'Type of reminder set for the task
settingsTEXT NULLSerialized settings for the task
remind_atTIMESTAMP NULLTimestamp when a reminder is set for the task
started_atTIMESTAMP NULLTimestamp when the task was started
due_atTIMESTAMP NULLTimestamp when the task is due
last_completed_atTIMESTAMP NULLTimestamp when the task was last completed
archived_atTIMESTAMP NULLTimestamp when the task was archived
created_atTIMESTAMP NULLTimestamp when the task was created
updated_atTIMESTAMP NULLTimestamp when the task was last updated

# _fbs_task_metas Table

This table is used for storing metadata related to tasks.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the task meta
task_idINT UNSIGNEDID of the associated task
keyVARCHAR(100)Key for the meta information
valueLONGTEXT NULLValue of the meta information
created_atTIMESTAMP NULLTimestamp when the meta was created
updated_atTIMESTAMP NULLTimestamp when the meta was last updated

# _fbs_attachments Table

This table stores information about attachments related to tasks.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the attachment
object_idINT UNSIGNEDID of the associated object (Task ID, Comment ID, or Board ID)
object_typeVARCHAR(100) DEFAULT 'TASK'Type of the object (TASK, COMMENT, BOARD)
attachment_typeVARCHAR(100) NULLType of the attachment
file_pathTEXT NULLFile path of the attachment
full_urlTEXT NULLFull URL of the attachment
settingsTEXT NULLSerialized settings
titleVARCHAR(192) NULLTitle of the attachment
file_hashVARCHAR(192) NULLFile hash for verifying integrity
driverVARCHAR(100) DEFAULT 'local'Storage driver (local, cloud, etc.)
statusVARCHAR(100) DEFAULT 'ACTIVE'Status of the attachment (ACTIVE, INACTIVE, DELETED)
file_sizeVARCHAR(100) NULLSize of the file
created_atTIMESTAMP NULLTimestamp when the attachment was created
updated_atTIMESTAMP NULLTimestamp when the attachment was last updated

# _fbs_comments Table

This table stores comments, notes, and replies related to tasks on boards.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the comment
board_idINT UNSIGNEDID of the associated board
task_idINT UNSIGNEDID of the associated task
parent_idBIGINT UNSIGNED NULLID of the parent comment if it's a reply
typeVARCHAR(50) DEFAULT 'comment'Type of the entry (comment, note, reply)
privacyVARCHAR(50) DEFAULT 'public'Privacy level of the comment (public, private)
statusVARCHAR(50) DEFAULT 'published'Status of the comment (published, draft, spam)
author_nameVARCHAR(192) DEFAULT ''Name of the comment author
author_emailVARCHAR(192) DEFAULT ''Email of the comment author
author_ipVARCHAR(50) DEFAULT ''IP address of the comment author
descriptionTEXT NULLContent of the comment
created_byBIGINT UNSIGNED NULLID of the user who created the comment
created_atTIMESTAMP NULLTimestamp when the comment was created
updated_atTIMESTAMP NULLTimestamp when the comment was last updated

# _fbs_activities Table

This table stores activity logs for tasks, including changes and actions taken on various objects.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the activity log
object_idINT UNSIGNEDID of the associated object (e.g., Task ID)
object_typeVARCHAR(100)Type of the object (e.g., Task, Comment, Board)
actionVARCHAR(50)Action performed (e.g., create, update, delete)
columnVARCHAR(50) NULLThe specific column that was changed (if applicable)
old_valueVARCHAR(50) NULLThe old value before the change
new_valueVARCHAR(50) NULLThe new value after the change
descriptionLONGTEXT NULLDescription of the activity or change
created_byBIGINT UNSIGNED NULLID of the user who performed the action
settingsTEXT NULLSerialized array for additional settings or metadata
created_atTIMESTAMP NULLTimestamp when the activity was created
updated_atTIMESTAMP NULLTimestamp when the activity was last updated

# _fbs_notifications Table

This table is designed to store notifications related to task management, including various actions performed on tasks.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the notification
object_idINT UNSIGNEDID of the associated object (e.g., Task ID, Board ID)
object_typeVARCHAR(100)Type of the object (e.g., Task, Comment, Board)
task_idINT UNSIGNED NULLID of the task associated with the notification (if applicable)
actionVARCHAR(255) NULLAction performed (e.g., task_created, priority_changed)
activity_byBIGINT UNSIGNEDID of the user who performed the action
descriptionLONGTEXT NULLDescription of the notification or action
settingsTEXT NULLSerialized array for additional settings or metadata
created_atTIMESTAMP NULLTimestamp when the notification was created
updated_atTIMESTAMP NULLTimestamp when the notification was last updated

# Keys and Indexes:

  • object_id: Index for the associated object ID.
  • object_type: Index for the type of the associated object.
  • activity_by: Index for the user who performed the action.

# _fbs_notification_users Table

This table is designed to track which users have received and read specific notifications.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the record
notification_idINT UNSIGNED NULLID of the related notification
user_idBIGINT UNSIGNEDID of the user who received the notification
marked_read_atTIMESTAMP NULLTimestamp when the notification was marked as read
created_atTIMESTAMP NULLTimestamp when the record was created
updated_atTIMESTAMP NULLTimestamp when the record was last updated

# Keys and Indexes:

  • notification_id: Index for the related notification ID.
  • user_id: Index for the user ID who received the notification.

# _fbs_teams Table

This table stores information about teams within the system.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the record
parent_idINT UNSIGNED NULLID of the parent team if this is a sub-team
titleVARCHAR(100)Name of the team
descriptionTEXT NULLDescription of the team
typeVARCHAR(50)Type of the team (e.g., project, department)
visibilityVARCHAR(50) DEFAULT 'VISIBLE'Visibility of the team (VISIBLE/SECRET)
notifications_enabledTINYINT(1) DEFAULT 1Whether notifications are enabled for the team
settingsTEXT NULLSerialized settings for the team
created_byBIGINT UNSIGNEDID of the user who created the team
created_atTIMESTAMP NULLTimestamp when the team was created
updated_atTIMESTAMP NULLTimestamp when the team was last updated

# Keys and Indexes:

  • type: Index for the type of team.
  • visibility: Index for the visibility status of the team.
  • created_by: Index for the ID of the user who created the team.
  • parent_id: Index for the parent team ID.
  • notifications_enabled: Index for the notification settings.
  • title: Index for the team title.

# _fbs_metas Table

This table stores metadata associated with various objects in the system.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the record
object_idINT UNSIGNED NULLID of the associated object (e.g., task, comment)
object_typeVARCHAR(100)Type of the object (e.g., task, comment)
keyVARCHAR(100) NULLMetadata key
valueLONGTEXT NULLMetadata value
created_atTIMESTAMP NULLTimestamp when the metadata was created
updated_atTIMESTAMP NULLTimestamp when the metadata was last updated

# Keys and Indexes:

  • object_id: Index for the ID of the associated object.

# _fbs_relations Table

This table manages relationships between different objects.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the record
object_idINT UNSIGNEDID of the primary object
object_typeVARCHAR(100)Type of the primary object (e.g., task, comment)
foreign_idINT UNSIGNEDID of the related object
settingsTEXT NULLSerialized settings for the relationship
preferencesTEXT NULLSerialized preferences for the relationship
created_atTIMESTAMP NULLTimestamp when the relationship was created
updated_atTIMESTAMP NULLTimestamp when the relationship was last updated

# Keys and Indexes:

  • object_type: Index for the type of the primary object.
  • object_id: Index for the ID of the primary object.
  • foreign_id: Index for the ID of the related object.

# _fbs_time_tracks Table

This table tracks time-related information for tasks.

ColumnTypeComment
idINT UNSIGNED Auto IncrementPrimary key of the record
user_idBIGINT UNSIGNEDID of the user who tracked the time
board_idINT UNSIGNEDID of the board
task_idINT UNSIGNEDID of the task
started_atTIMESTAMP NULLTimestamp when the time tracking started
completed_atTIMESTAMP NULLTimestamp when the time tracking was completed
messageTEXT NULLOptional message or note related to the time tracking
statusVARCHAR(50) NULL DEFAULT 'commited'Status of the time track (e.g., committed)
working_minutesINT UNSIGNED NOT NULL DEFAULT 0Total minutes worked
billable_minutesINT UNSIGNED NOT NULL DEFAULT 0Minutes that are billable
is_manualTINYINT(1) NOT NULL DEFAULT 0Indicates if the time track was entered manually
created_atTIMESTAMP NULLTimestamp when the record was created
updated_atTIMESTAMP NULLTimestamp when the record was last updated

# Keys and Indexes:

  • user_id: Index for the ID of the user.
  • status: Index for the status of the time track.
  • task_id: Index for the ID of the task.
  • board_id: Index for the ID of the board.

# _users Table

This table contains information about users, including login details, email, and registration data.

ColumnTypeComment
ID Integer
user_login String
user_pass String
user_nicename String
user_email String
user_url String
user_registered Date Time
user_activation_key String
user_status Integer
display_name String