File: schema.html

package info (click to toggle)
rtfm 2.0.3-1.1
  • links: PTS
  • area: main
  • in suites: etch, etch-m68k
  • size: 808 kB
  • ctags: 220
  • sloc: perl: 3,426; sh: 153; makefile: 144
file content (228 lines) | stat: -rw-r--r-- 5,748 bytes parent folder | download | duplicates (4)
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>