1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228
|
<html>
<head>
<title>RTFM 2.0 Schema</title>
</head>
<body>
<h1>FM_Articles</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Name varchar(255) NULL
</dt>
<dd>A short, ideally unique, identifier for this article</dd>
<dt>
Summary varchar(255) NULL
</dt>
<dd>A brief summary of this article</dd>
<dt>
SortOrder integer NULL
</dt>
<dd>When articles are automatically ordered by RTFM, this field defines which
articles should be listed first. (Lower numbers are listed first)</dd>
<dt>
Class integer NULL
</dt>
<dd>Foreign key to <b>FM_Classes</b></dd>
<dt>
URI varchar(255)
</dt>
<dd>A cached copy of this article's URI. Used to speed article relationship searches.</dd>
</dl>
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.
<h1>FM_Classes</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Name varchar(255) NULL
</dt>
<dd>A short name for this class. Used to help categorize articles and access to
articles</dd>
<dt>
Description varchar(255) NULL
</dt>
<dd>A brief description of what this class is used for.</dd>
<dt>
SortOrder integer NULL
</dt>
<dd>Used to automatically order classes in listings.</dd>
<dt>
Disabled int(2) not null default '0'
</dt>
<dd>Boolean used to determine whether this class is currently active</dd>
</dl>
<p> Classes are an analog to RT's "Queue."
<p> 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.
<h1>FM_CustomFields</h1><h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Name varchar(200) NULL
</dt>
<dd>A short name for this custom field. </dd>
<dt>
Type varchar(200) NULL
</dt>
<dd>A custom field's type determines its behaviour. Available types are:
SelectSingle SelectMultiple FreeformSingle FreeformMultiple TextSingle
</dd>
<dt>
Description varchar(200) NULL
</dt>
<dd>A freeform description for this custom field</dd>
<dt>
SortOrder integer NULL
</dt>
<dd>When custom fields are automatically ordered by RTFM, this field defines which
articles should be listed first. (Lower numbers are listed first)</dd>
</dl>
<p>Almost all data and metadata related to an "Article" is attached to it in the form of CustomFields.
<p>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.
<h1>FM_ClassCustomFields</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Class integer not NULL
</dt>
<dd>Foreign key to FM_Class.id</dd>
<dt>
CustomField integer not NULL
</dt>
<dd>Foreign key to FM_CustomFields.id </dd>
</dl>
<p>ClassCustomFields is a simple mapping table that allows a single CustomField to apply to more than one Class.
<h1>FM_CustomFieldValues</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
CustomField int NOT NULL
</dt>
<dd>Foreign key to FM_CustomFields.id </dd>
<dt>
Name varchar(255) NULL
</dt>
<dd>What this custom field value is called. This is the name that shows up in a
list of possible values for a custom field.</dd>
<dt>
Description varchar(255) NULL
</dt>
<dd>A brief description of what this value is used for, in the
context of the custom field.</dd>
<dt>
SortOrder integer NULL
</dt>
<dd>When values are automatically ordered by RTFM, this field defines which
articles should be listed first. (Lower numbers are listed first)</dd>
</dl>
<p>CustomFieldValues contains a list of acceptable values for each SelectSingle or SelectMultiple CustomField.
<h1>ArticleCFValues</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Article int NOT NULL
</dt>
<dd>Foreign key to FM_Articles.id</dd>
<dt>
CustomField int NOT NULL
</dt>
<dd>Foreign key to FM_CustomFields.id</dd>
<dt>
Content text
</dt>
<dd>
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.
</dd></dl>
<p>ArticleCFValues contains a list of current values for each applicable CustomField for each article.
<h1>FM_Transactions</h1>
<h2>Fields:</h2>
<dl><dt>
id INTEGER NOT NULL AUTO_INCREMENT
</dt>
<dd></dd>
<dt>
Article integer NULL
</dt>
<dd>Foreign key to FM_Articles.id</dd>
<dt>
ChangeLog text NULL
</dt>
<dd>A textual description of the content of this change</dd>
<dt>
Type varchar(64) NULL
</dt>
<dd>What sort of field is being changed. One of Link, Core, Custom</dd>
<dt>
Field varchar(64) NOT NULL DEFAULT '',
</dt> <dd>
If Type is "Core": the name of the core field we're changing<br>
If Type is "Custom": Weak foreign key to FM_CustomFields.id<br>
If Type is "Link" a description of what sort of link we're referring to.
(RefersTo, ReferredToBy)
</dd>
<dt> OldContent text NOT NULL DEFAULT "" </dt>
<dd>The old value of the field in question</dd>
<dt> NewContent text NOT NULL DEFAULT "" </dt>
<dd>The new value of the field in question</dd></dl>
<p>Each transaction describes a single update to an "Article".
</body>
</html>
|