FM_Articles

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Name varchar(255) NULL
A short, ideally unique, identifier for this article
Summary varchar(255) NULL
A brief summary of this article
SortOrder integer NULL
When articles are automatically ordered by RTFM, this field defines which articles should be listed first. (Lower numbers are listed first)
Class integer NULL
Foreign key to FM_Classes
URI varchar(255)
A cached copy of this article's URI. Used to speed article relationship searches.
An "Article" is RTFM's central element. Each article belongs to one and only one "Class". Adtitionally, articles can have a number of "ArticleCFValues" which correspond to the "CustomFields" for the Article's class.

FM_Classes

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Name varchar(255) NULL
A short name for this class. Used to help categorize articles and access to articles
Description varchar(255) NULL
A brief description of what this class is used for.
SortOrder integer NULL
Used to automatically order classes in listings.
Disabled int(2) not null default '0'
Boolean used to determine whether this class is currently active

Classes are an analog to RT's "Queue."

Within RTFM, rights to a class and all articles within that class can be granted to an RT user or group, using RT's ACL system. Class objects contain the necessary metadata to be ACLed within RT.

FM_CustomFields

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Name varchar(200) NULL
A short name for this custom field.
Type varchar(200) NULL
A custom field's type determines its behaviour. Available types are: SelectSingle SelectMultiple FreeformSingle FreeformMultiple TextSingle
Description varchar(200) NULL
A freeform description for this custom field
SortOrder integer NULL
When custom fields are automatically ordered by RTFM, this field defines which articles should be listed first. (Lower numbers are listed first)

Almost all data and metadata related to an "Article" is attached to it in the form of CustomFields.

Within RTFM, rights to a CustomField can be granted to an RT user or group, using RT's ACL system. Class objects contain the necessary metadata to be ACLed within RT.

FM_ClassCustomFields

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Class integer not NULL
Foreign key to FM_Class.id
CustomField integer not NULL
Foreign key to FM_CustomFields.id

ClassCustomFields is a simple mapping table that allows a single CustomField to apply to more than one Class.

FM_CustomFieldValues

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
CustomField int NOT NULL
Foreign key to FM_CustomFields.id
Name varchar(255) NULL
What this custom field value is called. This is the name that shows up in a list of possible values for a custom field.
Description varchar(255) NULL
A brief description of what this value is used for, in the context of the custom field.
SortOrder integer NULL
When values are automatically ordered by RTFM, this field defines which articles should be listed first. (Lower numbers are listed first)

CustomFieldValues contains a list of acceptable values for each SelectSingle or SelectMultiple CustomField.

ArticleCFValues

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Article int NOT NULL
Foreign key to FM_Articles.id
CustomField int NOT NULL
Foreign key to FM_CustomFields.id
Content text
To ensure data integrity, even as the "current" acceptable values for a Custom Field change, the content is stored by value, rather than by reference in the ArticleCFValues table. This has the added benefit of allowing "Select" custom fields to be converted to "Freeform" custom fields without losing data.

ArticleCFValues contains a list of current values for each applicable CustomField for each article.

FM_Transactions

Fields:

id INTEGER NOT NULL AUTO_INCREMENT
Article integer NULL
Foreign key to FM_Articles.id
ChangeLog text NULL
A textual description of the content of this change
Type varchar(64) NULL
What sort of field is being changed. One of Link, Core, Custom
Field varchar(64) NOT NULL DEFAULT '',
If Type is "Core": the name of the core field we're changing
If Type is "Custom": Weak foreign key to FM_CustomFields.id
If Type is "Link" a description of what sort of link we're referring to. (RefersTo, ReferredToBy)
OldContent text NOT NULL DEFAULT ""
The old value of the field in question
NewContent text NOT NULL DEFAULT ""
The new value of the field in question

Each transaction describes a single update to an "Article".