====== Database structure ====== The following is a complete list of all FluxBB database tables and their structures. Primary key fields are __underlined__, foreign keys are in ''italics''. ===== Type conventions ===== * Artificial primary keys are of type ''int(10)''. * Boolean values are of type ''tinyint(1)'', with the value ''1'' representing ''true'' and ''0'' representing ''false''. ===== List of tables ===== * [[#bans]] * [[#categories]] * [[#censoring]] * [[#config]] * [[#forums]] * [[#forum_perms]] * [[#groups]] * [[#online]] * [[#posts]] * [[#ranks]] * [[#reports]] * [[#search_cache]] * [[#search_matches]] * [[#search_words]] * [[#topic_subscriptions]] * [[#forum_subscriptions]] * [[#topics]] * [[#users]] **Please note:** The below descriptions are based off the database structure when using MySQL(i). In other supported RDBMS the field type and default values may vary slightly. ---- ==== bans ==== The bans table is used to hold details of all current bans. It is important to note that bans work on usernames, IP addresses or email addresses - not specific user accounts. ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''username''||''varchar(200)''||''NULL''||The username this ban applies to, or ''NULL'' for none.|| ||''ip''||''varchar(255)''||''NULL''||The IP address(es) this ban applies to, or ''NULL'' for none.|| ||''email''||''varchar(80)''||''NULL''||The email address this ban applies to, or ''NULL'' for none.|| ||''message''||''varchar(255)''||''NULL''||A message to be displayed to the banned user.|| ||''expire''||''int(10)''||''NULL''||A UNIX timestamp representing the time the ban should expire.|| ||''ban_creator''||''int(10)''||''0''||The ID of the user who created the ban.|| ==== categories ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''cat_name''||''varchar(80)''||''"New Category"''||The name of the category.|| ||''disp_position''||''int(10)''||''0''||The position of this category in relation to the others.|| ==== censoring ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''search_for''||''varchar(60)''||''""''||The term to search for.|| ||''replace_with''||''varchar(60)''||''""''||The term to replace with.|| ==== config ==== The ''config'' table holds key, value pairs for all the main configuration options. For performance reasons FluxBB [[v1.4:caching|caches]] these values and will only refresh the cache when they are updated via the admin panel. For more information about the actual contents of the ''config'' table, see the [[v1.4:variables#pun_config|$pun_config]] global variable. ||**Field**||**Type**||**Default**||**Description**|| ||__''conf_name''__||''varchar(255)''||''""''||The name of the configuration variable. General configuration options start with the prefix ''o_'' and general permission options start with the prefix ''p_''.|| ||''conf_value''||''text''||''NULL''||The value of the configuration variable.|| ==== forums ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''forum_name''||''varchar(80)''||''"New forum"''||The name of the forum.|| ||''forum_desc''||''text''||''NULL''||A description of the forum (may contain HTML).|| ||''redirect_url''||''varchar(100)''||''NULL''||The URL to redirect users to upon clicking the forum link, or ''NULL'' for a normal forum.|| ||''moderators''||''text''||''NULL''||A serialized associative PHP array with moderator names => user IDs.|| ||''num_topics''||''mediumint(8)''||''0''||The number of topics the forum contains.|| ||''num_posts''||''mediumint(8)''||''0''||The number of posts the forum contains.|| ||''last_post''||''int(10)''||''NULL''||A UNIX timestamp representing the time the last post was made in the forum.|| ||''last_post_id''||''int(10)''||''NULL''||The ID of the last post that was made in the forum.|| ||''last_poster''||''varchar(200)''||''NULL''||The username (or guest name) of the user that made the last post in the forum.|| ||''sort_by''||''tinyint(1)''||''0''||How the posts in the forum should be sorted. 0 = By last post time, 1 = By topic start time.|| ||''disp_position''||''int(10)''||''0''||The position of this forum in relation to the others.|| ||''cat_id''||''int(10)''||''0''||The ID of the category in which this forum resides.|| ==== forum_perms ==== ||**Field**||**Type**||**Default**||**Description**|| ||''__group_id__''||''int(10)''||''0''||The ID of the group this permission set applies to.|| ||''__forum_id__''||''int(10)''||''0''||The ID of the forum this permission set applies to.|| ||''read_forum''||''tinyint(1)''||''1''||Allow members of the group to view this forum?|| ||''post_replies''||''tinyint(1)''||''1''||Allow members of the group to post replies in this forum?|| ||''post_topics''||''tinyint(1)''||''1''||Allow members of the group to start new topics in this forum?|| ==== groups ==== All fields in the ''groups'' table are prefixed with ''g_''. This is to allow them to be easily combined with all the fields from the ''users'' table without any conflicting field names. ||**Field**||**Type**||**Default**||**Description**|| ||__''g_id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''g_title''||''varchar(50)''||''""''||The name of this group.|| ||''g_user_title''||''varchar(50)''||''NULL''||The user title to be used for members of this group.|| ||''g_moderator''||''tinyint(1)''||''0''||Does this group have moderator privileges?|| ||''g_mod_edit_users''||''tinyint(1)''||''0''||If ''g_moderator'', can members of this group edit users profiles?|| ||''g_mod_rename_users''||''tinyint(1)''||''0''||If ''g_moderator'', can members of this group rename users?|| ||''g_mod_change_passwords''||''tinyint(1)''||''0''||If ''g_moderator'', can members of this group change users passwords?|| ||''g_mod_ban_users''||''tinyint(1)''||''0''||If ''g_moderator'', can members of this group ban users?|| ||''g_read_board''||''tinyint(1)''||''1''||Can members of this group view boards? If this is ''0'' the group basically has no access to the forums.|| ||''g_view_users''||''tinyint(1)''||''1''||Can members of this group view the user list?|| ||''g_post_replies''||''tinyint(1)''||''1''||Can members of this group post replies?|| ||''g_post_topics''||''tinyint(1)''||''1''||Can members of this group start new topics?|| ||''g_edit_posts''||''tinyint(1)''||''1''||Can members of this group edit their own posts?|| ||''g_delete_posts''||''tinyint(1)''||''1''||Can members of this group delete their own posts?|| ||''g_delete_topics''||''tinyint(1)''||''1''||Can members of this group delete their own topics (including all replies)?|| ||''g_set_title''||''tinyint(1)''||''1''||Can members of this group set their own user title?|| ||''g_search''||''tinyint(1)''||''1''||Can members of this group use the search features?|| ||''g_search_users''||''tinyint(1)''||''1''||Can members of this group search the user list?|| ||''g_send_email''||''tinyint(1)''||''1''||Can members of this group send emails to users?|| ||''g_post_flood''||''smallint(6)''||''30''||How many seconds members of this group must wait between making posts.|| ||''g_search_flood''||''smallint(6)''||''30''||How many seconds members of this group must wait between making search requests.|| ||''g_email_flood''||''smallint(6)''||''60''||How many seconds members of this group must wait between sending emails.|| ==== online ==== ||**Field**||**Type**||**Default**||**Description**|| ||''user_id''||''int(10)''||''1''||The ID of the user (or ''1'' if the user is a guest).|| ||''ident''||''varchar(200)''||''""''||Identification string for the user (Username for logged in users, IP address for guests).|| ||''logged''||''int(10)''||''0''||A UNIX timestamp representing the time of the users last activity.|| ||''idle''||''tinyint(1)''||''0''||If the user is idle or not (i.e. their last visit was more than ''o_timeout_online'' seconds ago, but less than ''o_timeout_visit'' seconds ago - see the [[v1.4:variables#pun_config|$pun_config]] global variable).|| ||''last_post''||''int(10)''||''NULL''||A UNIX timestamp representing the time the user last made a post.|| ||''last_search''||''int(10)''||''NULL''||A UNIX timestamp representing the time the user last performed a search.|| ==== posts ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''poster''||''varchar(200)''||''""''||The username of the user who created this post.|| ||''poster_id''||''int(10)''||''1''||The ID of the user who created this post.|| ||''poster_ip''||''varchar(39)''||''NULL''||The IP address of the user who created this post.|| ||''poster_email''||''varchar(80)''||''NULL''||If the post was created by a guest, their email address. If it was created by a logged in user, then ''NULL''.|| ||''message''||''mediumtext''||''NULL''||The contents of the post.|| ||''hide_smilies''||''tinyint(1)''||''0''||Should smilies be hidden in this post?|| ||''posted''||''int(10)''||''0''||A UNIX timestamp representing the time this post was created.|| ||''edited''||''int(10)''||''NULL''||A UNIX timestamp representing the time this post was last edited, or ''NULL'' if it hasn't been edited.|| ||''edited_by''||''varchar(200)''||''NULL''||The username of the user who last edited this post, or ''NULL'' if it hasn't been edited.|| ||''topic_id''||''int(10)''||''0''||The ID of the parent topic for this post.|| ==== ranks ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''rank''||''varchar(50)''||''""''||The rank title.|| ||''min_posts''||''mediumint(8)''||''0''||The number of posts a user must attain in order to reach the rank.|| ==== reports ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''post_id''||''int(10)''||''0''||The ID of the reported post.|| ||''topic_id''||''int(10)''||''0''||The ID of topic in which the reported post is contained.|| ||''forum_id''||''int(10)''||''0''||The ID of the forum in which the reported post is contained.|| ||''reported_by''||''int(10)''||''0''||The ID of the user who created the report.|| ||''created''||''int(10)''||''0''||A UNIX timestamp representing the time this report was created.|| ||''message''||''text''||''NULL''||The report message entered by the user.|| ||''zapped''||''int(10)''||''NULL''||A UNIX timestamp representing the time this report was zapped (marked as read).|| ||''zapped_by''||''int(10)''||''NULL''||The ID of the user who zapped (marked as read) this report.|| ==== search_cache ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''ident''||''varchar(200)''||''""''||An identifier for the user who initiated the search. For a guest their IP address is used, for a logged in user, their username.|| ||''search_data''||''mediumtext''||''NULL''||A serialized array containing search results.|| ==== search_matches ==== ||**Field**||**Type**||**Default**||**Description**|| ||''post_id''||''int(10)''||''0''||The ID of the post which this word can be found.|| ||''word_id''||''int(10)''||''0''||The ID of the word which can be found there.|| ||''subject_match''||''tinyint(1)''||''0''||''0'' = The word is in the post body, ''1'' = the word is in a topic subject.|| ==== search_words ==== ||**Field**||**Type**||**Default**||**Description**|| ||''id''||''int(10)''||''0''||The auto-incrementing primary key for this table.|| ||__''word''__||''varchar(20)''||''""''||The word to be indexed.|| ==== topic_subscriptions ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''user_id''__||''int(10)''||''0''||The ID of the user which this subscription belongs to.|| ||__''topic_id''__||''int(10)''||''0''||The ID of the topic which this subscription belongs to.|| ==== forum_subscriptions ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''user_id''__||''int(10)''||''0''||The ID of the user which this subscription belongs to.|| ||__''forum_id''__||''int(10)''||''0''||The ID of the forum which this subscription belongs to.|| ==== topics ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''poster''||''varchar(200)''||''""''||The username of the user who posted this topic.|| ||''subject''||''varchar(255)''||''""''||The subject of the topic.|| ||''posted''||''int(10)''||''0''||A UNIX timestamp representing the time this topic was posted.|| ||''first_post_id''||''int(10)''||''0''||The ID of the first post in this topic.|| ||''last_post''||''int(10)''||''0''||A UNIX timestamp representing the time the last post was made to this topic.|| ||''last_post_id''||''int(10)''||''0''||The ID of the last post in this topic.|| ||''last_poster''||''varchar(200)''||''NULL''||The username of the user who posted the last reply to this topic.|| ||''num_views''||''mediumint(8)''||''0''||The number of times this topic has been viewed.|| ||''num_replies''||''mediumint(8)''||''0''||The number of replies this topic has.|| ||''closed''||''tinyint(1)''||''0''||Is this topic closed?|| ||''sticky''||''tinyint(1)''||''0''||Is this topic a sticky?|| ||''moved_to''||''int(10)''||''NULL''||If the topic has been moved, the ID of the new topic (this one now solely acts as a redirect).|| ||''forum_id''||''int(10)''||''0''||The ID of the forum this topic is within.|| ==== users ==== ||**Field**||**Type**||**Default**||**Description**|| ||__''id''__||''int(10)''|| ||The auto-incrementing primary key for this table.|| ||''group_id''||''int(10)''||''3''||The ID of the group to which this user belongs. The default is PUN_MEMBER.|| ||''username''||''varchar(200)''||''""''||The users username.|| ||''password''||''varchar(40)''||''""''||The users password hash.|| ||''email''||''varchar(80)''||''""''||The users email address.|| ||''title''||''varchar(50)''||''NULL''||The user title. If this field is empty, the title from the user's usetgroup will be used.|| ||''realname''||''varchar(40)''||''NULL''||The real name of the user.|| ||''url''||''varchar(100)''||''NULL''||The website of the user.|| ||''jabber''||''varchar(80)''||''NULL''||The Jabber address of the user.|| ||''icq''||''varchar(12)''||''NULL''||The Icq address of the user.|| ||''msn''||''varchar(80)''||''NULL''||The MSN address of the user.|| ||''aim''||''varchar(30)''||''NULL''||The Aim address of the user.|| ||''yahoo''||''varchar(30)''||''NULL''||The Yahoo! address of the user.|| ||''location''||''varchar(30)''||''NULL''||The location of the user. This can be a country, city or something else.|| ||''signature''||''text''||''NULL''||The contents of the users signature.|| ||''disp_topics''||''tinyint(3)''||''NULL''||The number of topics to display per page, or the forum default ''o_disp_topics_default'' (see [[v1.4:variables#pun_config|$pun_config]]) if ''NULL''.|| ||''disp_posts''||''tinyint(3)''||''NULL''||The number of posts to display per page, or the forum default ''o_disp_posts_default'' (see [[v1.4:variables#pun_config|$pun_config]]) if ''NULL''.|| ||''email_setting''||''tinyint(1)''||''1''||The level of privacy for the users email address. 0 = Show email address to other users, 1 = Hide email address but allow others users to send emails via the forums, 2 = Hide email address and don't allow other users to send emails.|| ||''notify_with_post''||''tinyint(1)''||''0''||Should a plain-text version of the post be included in subscription emails to the user?|| ||''auto_notify''||''tinyint(1)''||''0''||Should the user automatically be subscribed to their own posts?|| ||''show_smilies''||''tinyint(1)''||''1''||Should smilies in posts be shown to the user?|| ||''show_img''||''tinyint(1)''||''1''||Should images in posts be shown to the user?|| ||''show_img_sig''||''tinyint(1)''||''1''||Should images in signatures be shown to the user?|| ||''show_avatars''||''tinyint(1)''||''1''||Should avatars be shown to the user?|| ||''show_sig''||''tinyint(1)''||''1''||Should signatures to shown to the user?|| ||''timezone''||''float''||''0''||The users timezone.|| ||''dst''||''tinyint(1)''||''0''||Is the user currently observing daylight saving time?|| ||''time_format''||''tinyint(1)''||''0''||The time format that the user uses.|| ||''date_format''||''tinyint(1)''||''0''||The date format that the user uses.|| ||''language''||''varchar(25)''||''"English"''||The language that should be used for this user.|| ||''style''||''varchar(25)''||''"Air"''||The name of the style that should be used for this user.|| ||''num_posts''||''int(10)''||''0''||The number of posts the user has made. Note: This is the number made, not the number that currently exist (i.e. when a post is deleted this isn't decremented).|| ||''last_post''||''int(10)''||''NULL''||A UNIX timestamp representing the time the user last made a post.|| ||''last_search''||''int(10)''||''NULL''||A UNIX timestamp representing the time the user last performed a search.|| ||''last_email_sent''||''int(10)''||''NULL''||A UNIX timestamp representing the time the user last sent an email via the forums.|| ||''registered''||''int(10)''||''0''||A UNIX timestamp representing the time the user registered.|| ||''registration_ip''||''varchar(39)''||''"0.0.0.0"''||The IP address used by the user when registering.|| ||''last_visit''||''int(10)''||''0''||A UNIX timestamp representing the time of the users last visit.|| ||''admin_note''||''varchar(30)''||''NULL''||A note that the administrator has entered.|| ||''activate_string''||''varchar(80)''||''NULL''||A temporary storage string for new passwords and new e-mail addresses.|| ||''activate_key''||''varchar(8)''||''NULL''||A temporary storage string for new password and new e-mail address activation keys.||