Schema for MARC storage tables. Blatantly stolen from www.pytheas.org.
[koha.git] / marc / marcschema.sql
1 create table Resource_Table (Resource_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
2 Date_Added TIMESTAMP, Date_Modified TIMESTAMP, Record_ID INT UNSIGNED,
3 Statement_ID INT UNSIGNED, Scope_ID INT UNSIGNED,
4 Container_ID INT UNSIGNED,
5 primary key(Resource_ID));
6
7 create table Schema_Table (Schema_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
8 Date_Added TIMESTAMP, Date_Modified TIMESTAMP,
9 Schema_URI CHAR(255) NOT NULL,
10 Object_ID INT UNSIGNED NOT NULL,
11 KEY ID_Index(Object_ID),
12 KEY Schema_Index (Schema_URI(255)),
13 primary key(Schema_ID));
14
15 create table Statement_Table (
16 Statement_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
17 Date_Added TIMESTAMP, 
18 Date_Modified TIMESTAMP, 
19 Statement_ID INT UNSIGNED NOT NULL,
20 Subject CHAR(255) NOT NULL,
21 Predicate CHAR(255) NOT NULL,
22 Object CHAR(255) NOT NULL,
23 Object_ID INT UNSIGNED,
24 Schema_ID INT UNSIGNED,
25 Statement_Type INT UNSIGNED,
26 KEY ID_Index (Statement_ID),
27 KEY Subject_Index (Subject(255)), 
28 KEY Pred_Index (Predicate(255)),
29 KEY Object_Index (Object(255)),
30 primary key(Statement_Key));  
31
32 create table Scope_Table (
33 Scope_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
34 Date_Added TIMESTAMP, Date_Modified TIMESTAMP,
35 Operator_ID INT UNSIGNED,
36 Location_ID INT UNSIGNED,
37 Resource_Type_ID ENUM('B','N'),
38 primary key(Scope_ID));
39
40 create table Bib_Table (Bib_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
41 Record_ID INT UNSIGNED NOT NULL,
42 Date_Added TIMESTAMP, Date_Modified TIMESTAMP, Control_ID INT UNSIGNED, 
43 Tag_0XX_ID INT UNSIGNED, Tag_1XX_ID INT UNSIGNED, Tag_2XX_ID INT
44 UNSIGNED, Tag_3XX_ID INT UNSIGNED, Tag_4XX_ID INT UNSIGNED, Tag_5XX_ID
45 INT UNSIGNED, Tag_6XX_ID INT UNSIGNED, Tag_7XX_ID INT UNSIGNED,
46 Tag_8XX_ID INT UNSIGNED, Tag_9XX_ID INT UNSIGNED, Storage_ID INT
47 UNSIGNED, Holdings_ID INT UNSIGNED,
48 KEY ID_Index(Record_ID), primary key(Bib_ID));
49
50 create table 0XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
51 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
52 Indicator2 CHAR(1) NOT NULL,
53 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
54 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
55 KEY ID_Index(Tag_ID),
56 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
57
58 create table 0XX_Subfield_Table 
59 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
60 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
61 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
62 KEY ID_Index (Subfield_ID),
63 KEY Mark_Index (Subfield_Mark(1)),
64 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
65
66 create table 1XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
67 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
68 Indicator2 CHAR(1) NOT NULL,
69 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
70 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
71 KEY ID_Index(Tag_ID),
72 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
73
74 create table 1XX_Subfield_Table 
75 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
76 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
77 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
78 KEY ID_Index (Subfield_ID),
79 KEY Mark_Index (Subfield_Mark(1)),
80 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
81
82 create table 2XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
83 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
84 Indicator2 CHAR(1) NOT NULL,
85 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
86 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
87 KEY ID_Index (Tag_ID),
88 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
89
90 create table 2XX_Subfield_Table 
91 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
92 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
93 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
94 KEY ID_Index (Subfield_ID),
95 KEY Mark_Index (Subfield_Mark(1)),
96 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
97
98 create table 3XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
99 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
100 Indicator2 CHAR(1) NOT NULL,
101 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
102 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
103 KEY ID_Index (Tag_ID),
104 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
105
106 create table 3XX_Subfield_Table 
107 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
108 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
109 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
110 KEY ID_Index (Subfield_ID),
111 KEY Mark_Index (Subfield_Mark(1)),
112 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
113
114 create table 4XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
115 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
116 Indicator2 CHAR(1) NOT NULL,
117 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
118 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
119 KEY ID_Index (Tag_ID),
120 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
121
122 create table 4XX_Subfield_Table 
123 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
124 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
125 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
126 KEY ID_Index (Subfield_ID),
127 KEY Mark_Index (Subfield_Mark(1)),
128 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
129
130 create table 5XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
131 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
132 Indicator2 CHAR(1) NOT NULL,
133 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
134 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
135 KEY ID_Index (Tag_ID),
136 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
137
138 create table 5XX_Subfield_Table 
139 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
140 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
141 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
142 KEY ID_Index (Subfield_ID),
143 KEY Mark_Index (Subfield_Mark(1)),
144 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
145
146 create table 6XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
147 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
148 Indicator2 CHAR(1) NOT NULL,
149 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
150 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
151 KEY ID_Index (Tag_ID),
152 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
153
154 create table 6XX_Subfield_Table 
155 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
156 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
157 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
158 KEY ID_Index (Subfield_ID),
159 KEY Mark_Index (Subfield_Mark(1)),
160 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
161
162 create table 7XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
163 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
164 Indicator2 CHAR(1) NOT NULL,
165 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
166 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
167 KEY ID_Index (Tag_ID),
168 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
169
170 create table 7XX_Subfield_Table 
171 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
172 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
173 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
174 KEY ID_Index (Subfield_ID),
175 KEY Mark_Index (Subfield_Mark(1)),
176 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
177
178 create table 8XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
179 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
180 Indicator2 CHAR(1) NOT NULL,
181 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
182 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
183 KEY ID_Index (Tag_ID),
184 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
185
186 create table 8XX_Subfield_Table 
187 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
188 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
189 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
190 KEY ID_Index (Subfield_ID),
191 KEY Mark_Index (Subfield_Mark(1)),
192 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
193
194 create table 9XX_Tag_Table (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
195 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
196 Indicator2 CHAR(1) NOT NULL,
197 Tag CHAR(3) NOT NULL, Subfield_ID INT UNSIGNED, Authority_ID INT UNSIGNED, 
198 Link_Flag ENUM('Y','N','B'), Storage_ID INT UNSIGNED,
199 KEY ID_Index (Tag_ID),
200 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
201
202 create table 9XX_Subfield_Table 
203 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
204 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
205 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
206 KEY ID_Index (Subfield_ID),
207 KEY Mark_Index (Subfield_Mark(1)),
208 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
209
210 create table Control_Table
211 (Control_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
212 Record_Status CHAR(1) NOT NULL,
213 Record_Type CHAR(1) NOT NULL,
214 Encoding_Level CHAR(1) NOT NULL,
215 Des_Cat_Form CHAR(1) NOT NULL,
216 Type_Date CHAR(1) NOT NULL,
217 Beg_Pub_Date CHAR(4) NOT NULL,
218 End_Pub_Date CHAR(4) NOT NULL,
219 Pub_Place CHAR(3) NOT NULL,
220 Ill_Code CHAR(4) NOT NULL,
221 Target_Aud CHAR(1) NOT NULL,
222 Item_Form CHAR(1) NOT NULL,
223 Cont_Nature CHAR(4) NOT NULL,
224 Gov_Code CHAR(1) NOT NULL,
225 Conf_Code CHAR(1) NOT NULL,
226 Festschrift CHAR(1) NOT NULL,
227 Own_Index CHAR(1) NOT NULL,
228 Fiction CHAR(1) NOT NULL,
229 Biography CHAR(1) NOT NULL,
230 Lan_Code CHAR(3) NOT NULL,
231 Storage_ID INT UNSIGNED,
232 primary key (Control_ID));
233
234 create table Auth_Table
235 (Auth_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
236 Auth_Control_ID INT UNSIGNED NOT NULL, Date_Added TIMESTAMP, 
237 Date_Modified TIMESTAMP,
238 Auth_1XX_ID INT UNSIGNED, Auth_260_ID INT UNSIGNED, Auth_360_ID INT UNSIGNED,
239 Auth_4XX_ID INT UNSIGNED, Auth_663_ID INT UNSIGNED, Auth_664_ID INT UNSIGNED,
240 Auth_665_ID INT UNSIGNED, Auth_667_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
241 KEY ID_Index (Auth_Control_ID),
242 primary key(Auth_ID));
243
244 create table Auth_1XX_Tag_Table 
245 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL ,
246 Indicator1 CHAR(1) NOT NULL,
247 Indicator2 CHAR(1) NOT NULL,
248 Tag CHAR(3) NOT NULL,
249 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
250 KEY ID_Index (Tag_ID),
251 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
252
253 create table Auth_1XX_Subfield_Table 
254 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
255 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
256 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
257 KEY ID_Index (Subfield_ID),
258 KEY Mark_Index (Subfield_Mark(1)),
259 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
260
261 create table Auth_260_Tag_Table 
262 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL,  
263 Indicator1 CHAR(1) NOT NULL,
264 Indicator2 CHAR(1) NOT NULL,
265 Tag CHAR(3) NOT NULL,
266 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
267 KEY ID_Index (Tag_ID),
268 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
269
270 create table Auth_260_Subfield_Table 
271 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
272 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
273 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
274 KEY ID_Index (Subfield_ID),
275 KEY Mark_Index (Subfield_Mark(1)),
276 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
277
278 create table Auth_360_Tag_Table 
279 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
280 Indicator1 CHAR(1) NOT NULL,
281 Indicator2 CHAR(1) NOT NULL,
282 Tag CHAR(3) NOT NULL,
283 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
284 KEY ID_Index (Tag_ID),
285 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
286
287 create table Auth_360_Subfield_Table 
288 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
289 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
290 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
291 KEY ID_Index (Subfield_ID),
292 KEY Mark_Index (Subfield_Mark(1)),
293 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
294
295 create table Auth_4XX_Tag_Table 
296 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
297 Indicator1 CHAR(1) NOT NULL,
298 Indicator2 CHAR(1) NOT NULL,
299 Tag CHAR(3) NOT NULL,
300 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
301 KEY ID_Index(Tag_ID),
302 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
303
304 create table Auth_4XX_Subfield_Table 
305 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
306 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
307 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
308 KEY ID_Index(Subfield_ID),
309 KEY Mark_Index (Subfield_Mark(1)),
310 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
311
312 create table Auth_663_Tag_Table 
313 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
314 Indicator1 CHAR(1) NOT NULL,
315 Indicator2 CHAR(1) NOT NULL,
316 Tag CHAR(3) NOT NULL,
317 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
318 KEY ID_Index (Tag_ID),
319 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
320
321 create table Auth_663_Subfield_Table 
322 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
323 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
324 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
325 KEY ID_Index (Subfield_ID),
326 KEY Mark_Index (Subfield_Mark(1)),
327 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
328
329 create table Auth_664_Tag_Table 
330 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
331 Indicator1 CHAR(1) NOT NULL,
332 Indicator2 CHAR(1) NOT NULL,
333 Tag CHAR(3) NOT NULL,
334 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
335 KEY ID_Index (Tag_ID),
336 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
337
338 create table Auth_664_Subfield_Table 
339 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
340 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
341 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
342 KEY ID_Index (Subfield_ID),
343 KEY Mark_Index (Subfield_Mark(1)),
344 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
345
346 create table Auth_665_Tag_Table 
347 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
348 Indicator1 CHAR(1) NOT NULL,
349 Indicator2 CHAR(1) NOT NULL,
350 Tag CHAR(3) NOT NULL,
351 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
352 KEY ID_Index (Tag_ID),
353 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
354
355 create table Auth_665_Subfield_Table 
356 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
357 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
358 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
359 KEY ID_Index (Subfield_ID),
360 KEY Mark_Index (Subfield_Mark(1)),
361 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
362
363 create table Auth_667_Tag_Table 
364 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT, Tag_ID INT UNSIGNED NOT NULL, 
365 Indicator1 CHAR(1) NOT NULL,
366 Indicator2 CHAR(1) NOT NULL,
367 Tag CHAR(3) NOT NULL,
368 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
369 KEY ID_Index (Tag_ID),
370 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
371
372 create table Auth_667_Subfield_Table 
373 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
374 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
375 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
376 KEY ID_Index (Subfield_ID),
377 KEY Mark_Index (Subfield_Mark(1)),
378 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
379
380 create table Auth_Link_Table
381 (Link_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
382 Date_Added TIMESTAMP, Date_Modified TIMESTAMP,
383 Auth_ID INT UNSIGNED, Record_ID INT UNSIGNED,
384 Link_Type ENUM('a','b','c','d','e','f','g'),
385 Tag_ID INT UNSIGNED, Tag CHAR(3) NOT NULL,
386 KEY Tag_Index (Tag(3)), primary key (Link_ID));
387
388 create table Auth_Control_Table
389 (Auth_Cont_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
390 Record_Status CHAR(1) NOT NULL,
391 Record_Type CHAR(1) NOT NULL,
392 Geo_Sub_Code CHAR(1) NOT NULL,
393 Record_Kind CHAR(1) NOT NULL,
394 Main_or_Added CHAR(1) NOT NULL,
395 Subj_Added CHAR(1) NOT NULL,
396 Ser_Added CHAR(1) NOT NULL,
397 Storage_ID INT UNSIGNED,
398 primary key (Auth_Cont_ID));
399
400 create table Holdings_Table
401 (Hold_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
402 Hold_Control_ID INT UNSIGNED NOT NULL, Date_Added TIMESTAMP, 
403 Date_Modified TIMESTAMP,
404 Notes_Tag_ID INT UNSIGNED, Hold_852_ID INT UNSIGNED, Caps_Pat_ID INT UNSIGNED,
405 Enum_Chron_ID INT UNSIGNED, Text_Hold_ID INT UNSIGNED,
406 Storage_ID INT UNSIGNED, 
407 KEY ID_Index (Hold_Control_ID),
408 primary key(Hold_ID));
409
410 create table Hold_Notes_Tag_Table
411 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
412 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
413 Indicator2 CHAR(1) NOT NULL, Tag CHAR(3) NOT NULL,
414 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
415 KEY ID_Index (Tag_ID),
416 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
417
418 create table Hold_Notes_Tag_Subfield_Table 
419 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
420 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
421 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
422 KEY ID_Index (Subfield_ID),
423 KEY Mark_Index (Subfield_Mark(1)),
424 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
425
426 create table Hold_852_Table
427 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
428 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
429 Indicator2 CHAR(1) NOT NULL, Tag CHAR(3) NOT NULL,
430 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
431 KEY ID_Index (Tag_ID),
432 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
433
434 create table Hold_852_Subfield_Table 
435 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
436 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
437 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
438 KEY ID_Index (Subfield_ID),
439 KEY Mark_Index (Subfield_Mark(1)),
440 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
441
442 create table Hold_Caps_Pat_Table
443 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
444 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
445 Indicator2 CHAR(1) NOT NULL, Tag CHAR(3) NOT NULL,
446 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
447 KEY ID_Index (Tag_ID),
448 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
449
450 create table Hold_Caps_Pat_Subfield_Table 
451 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
452 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
453 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
454 KEY ID_Index (Subfield_ID),
455 KEY Mark_Index (Subfield_Mark(1)),
456 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
457
458 create table Hold_Enum_Chron_Table
459 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
460 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
461 Indicator2 CHAR(1) NOT NULL, Tag CHAR(3) NOT NULL,
462 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
463 KEY ID_Index (Tag_ID),
464 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
465
466 create table Hold_Enum_Chron_Subfield_Table 
467 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
468 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
469 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
470 KEY ID_Index (Subfield_ID),
471 KEY Mark_Index (Subfield_Mark(1)),
472 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
473
474 create table Hold_Text_Hold_Table
475 (Tag_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
476 Tag_ID INT UNSIGNED NOT NULL, Indicator1 CHAR(1) NOT NULL,
477 Indicator2 CHAR(1) NOT NULL, Tag CHAR(3) NOT NULL,
478 Subfield_ID INT UNSIGNED, Storage_ID INT UNSIGNED,
479 KEY ID_Index (Tag_ID),
480 KEY Tag_Index (Tag(3)), primary key(Tag_Key));
481
482 create table Hold_Text_Hold_Subfield_Table 
483 (Subfield_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
484 Subfield_ID INT UNSIGNED NOT NULL, Subfield_Mark CHAR(1) NOT NULL,
485 Subfield_Value CHAR(255) NOT NULL, Storage_ID INT UNSIGNED,
486 KEY ID_Index (Subfield_ID),
487 KEY Mark_Index (Subfield_Mark(1)),
488 KEY Subfield_Index (Subfield_Value(255)), primary key(Subfield_Key));
489
490 create table Hold_Control_Table
491 (Hold_Cont_ID INT UNSIGNED NOT NULL AUTO_INCREMENT,
492 Record_Status CHAR(1) NOT NULL,
493 Record_Type CHAR(1) NOT NULL, 
494 Meth_Acq CHAR(1) NOT NULL, 
495 Cancel_Date CHAR(4) NOT NULL, 
496 Gen_Retention CHAR(1) NOT NULL, 
497 Spe_Retention CHAR(3) NOT NULL, 
498 Cmplt CHAR(4) NOT NULL, 
499 Lend_Pol CHAR(1) NOT NULL,
500 Re_Pol CHAR(1) NOT NULL,
501 Lan_Code CHAR(3) NOT NULL,
502 Storage_ID INT UNSIGNED,
503 primary key(Hold_Cont_ID));
504
505 create table Storage_Table
506 (Storage_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
507 Storage_ID INT UNSIGNED NOT NULL, Blob_ID INT UNSIGNED, Text_ID INT UNSIGNED,
508 Med_Blob_ID INT UNSIGNED, Med_Text_ID INT UNSIGNED, Long_Blob_ID INT UNSIGNED,
509 Long_Text_ID INT UNSIGNED, URI CHAR(255),
510 Storage_Type ENUM('B','MB','LB','U'),
511 KEY ID_Index (Storage_ID),
512 primary key(Storage_Key));
513
514 create table Blob_Table
515 (Blob_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
516 Blob_ID INT UNSIGNED NOT NULL, Blob_Data BLOB,
517 Seq_No  INT UNSIGNED,
518 KEY ID_Index (Blob_ID),
519 primary key(Blob_Key));
520
521 create table Med_Blob_Table
522 (Med_Blob_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
523 Med_Blob_ID INT UNSIGNED NOT NULL, Blob_Data MEDIUMBLOB,
524 Seq_No  INT UNSIGNED,
525 KEY ID_Index (Med_Blob_ID),
526 primary key(Med_Blob_Key));
527
528 create table Long_Blob_Table
529 (Long_Blob_Key INT UNSIGNED NOT NULL AUTO_INCREMENT,
530 Long_Blob_ID INT UNSIGNED NOT NULL, Long_Blob_Data LONGBLOB,
531 Seq_No  INT UNSIGNED,
532 KEY ID_Index (Long_Blob_ID),
533 primary key(Long_Blob_Key));