Convert the text cache to use a blob, so that there are no character set
[moodle.git] / lib / db / mysql.sql
1 # phpMyAdmin MySQL-Dump
2 # version 2.3.0-dev
3 # http://phpwizard.net/phpMyAdmin/
4 # http://www.phpmyadmin.net/ (download page)
5 #
6 # Host: localhost
7 # Generation Time: Jun 25, 2002 at 05:04 PM
8 # Server version: 3.23.49
9 # PHP Version: 4.1.2
10 # Database : `moodle`
11 # --------------------------------------------------------
13 #
14 # Table structure for table `config`
15 #
17 CREATE TABLE `prefix_config` (
18   `id` int(10) unsigned NOT NULL auto_increment,
19   `name` varchar(255) NOT NULL default '',
20   `value` text NOT NULL default '',
21   PRIMARY KEY  (`id`),
22   UNIQUE KEY `name` (`name`)
23 ) TYPE=MyISAM COMMENT='Moodle configuration variables';
24 # --------------------------------------------------------
26 #
27 # Table structure for table `config_plugins`
28 #
30 CREATE TABLE `prefix_config_plugins` (
31   `id`         int(10) unsigned NOT NULL auto_increment,
32   `plugin`     varchar(100) NOT NULL default 'core',
33   `name`       varchar(100) NOT NULL default '',
34   `value`      text NOT NULL default '',
35   PRIMARY KEY  (`id`),
36   UNIQUE KEY `plugin_name` (`plugin`, `name`)
37 ) TYPE=MyISAM COMMENT='Moodle modules and plugins configuration variables';
38 # --------------------------------------------------------
41 #
42 # Table structure for table `course`
43 #
45 CREATE TABLE `prefix_course` (
46   `id` int(10) unsigned NOT NULL auto_increment,
47   `category` int(10) unsigned NOT NULL default '0',
48   `sortorder` int(10) unsigned NOT NULL default '0',
49   `password` varchar(50) NOT NULL default '',
50   `fullname` varchar(254) NOT NULL default '',
51   `shortname` varchar(15) NOT NULL default '',
52   `idnumber` varchar(100) NOT NULL default '',
53   `summary` text NOT NULL default '',
54   `format` varchar(10) NOT NULL default 'topics',
55   `showgrades` smallint(2) unsigned NOT NULL default '1',
56   `modinfo` longtext NOT NULL default '',
57   `newsitems` smallint(5) unsigned NOT NULL default '1',
58   `teacher` varchar(100) NOT NULL default 'Teacher',
59   `teachers` varchar(100) NOT NULL default 'Teachers',
60   `student` varchar(100) NOT NULL default 'Student',
61   `students` varchar(100) NOT NULL default 'Students',
62   `guest` tinyint(2) unsigned NOT NULL default '0',
63   `startdate` int(10) unsigned NOT NULL default '0',
64   `enrolperiod` int(10) unsigned NOT NULL default '0',
65   `numsections` smallint(5) unsigned NOT NULL default '1',
66   `marker` int(10) unsigned NOT NULL default '0',
67   `maxbytes` int(10) unsigned NOT NULL default '0',
68   `showreports` int(4) unsigned NOT NULL default '0',
69   `visible` int(1) unsigned NOT NULL default '1',
70   `hiddensections` int(2) unsigned NOT NULL default '0',
71   `groupmode` int(4) unsigned NOT NULL default '0',
72   `groupmodeforce` int(4) unsigned NOT NULL default '0',
73   `lang` varchar(10) NOT NULL default '',
74   `theme` varchar(50) NOT NULL default '',
75   `cost` varchar(10) NOT NULL default '',
76   `currency` char(3) NOT NULL default 'USD',
77   `timecreated` int(10) unsigned NOT NULL default '0',
78   `timemodified` int(10) unsigned NOT NULL default '0',
79   `metacourse` int(1) unsigned NOT NULL default '0',
80   `requested` int(1) unsigned NOT NULL default '0',
81   `restrictmodules` int(1) unsigned NOT NULL default '0',
82   `expirynotify` tinyint(1) unsigned NOT NULL default '0',
83   `expirythreshold` int(10) unsigned NOT NULL default '0',
84   `notifystudents` tinyint(1) unsigned NOT NULL default '0',  
85   `enrollable` tinyint(1) unsigned NOT NULL default '1',
86   `enrolstartdate` int(10) unsigned NOT NULL default '0',
87   `enrolenddate` int(10) unsigned NOT NULL default '0',
88   `enrol` varchar(20) NOT NULL default '',
89   PRIMARY KEY  (`id`),
90   KEY `category` (`category`),
91   KEY `idnumber` (`idnumber`),
92   KEY `shortname` (`shortname`)  
93 ) TYPE=MyISAM;
94 # --------------------------------------------------------
96 #
97 # Table structure for table `course_categories`
98 #
100 CREATE TABLE `prefix_course_categories` (
101   `id` int(10) unsigned NOT NULL auto_increment,
102   `name` varchar(255) NOT NULL default '',
103   `description` text NOT NULL default '',
104   `parent` int(10) unsigned NOT NULL default '0',
105   `sortorder` int(10) unsigned NOT NULL default '0',
106   `coursecount` int(10) unsigned NOT NULL default '0',
107   `visible` tinyint(1) NOT NULL default '1',
108   `timemodified` int(10) unsigned NOT NULL default '0',
109   `depth` int(10) unsigned NOT NULL default '0',
110   `path` varchar(255) NOT NULL default '',
111   PRIMARY KEY  (`id`),
112   UNIQUE KEY `id` (`id`)
113 ) TYPE=MyISAM COMMENT='Course categories';
114 # --------------------------------------------------------
118 # Table structure for table `course_display`
121 CREATE TABLE `prefix_course_display` (
122   `id` int(10) unsigned NOT NULL auto_increment,
123   `course` int(10) unsigned NOT NULL default '0',
124   `userid` int(10) unsigned NOT NULL default '0',
125   `display` int(10) NOT NULL default '0',
126   PRIMARY KEY  (`id`),
127   UNIQUE KEY `id` (`id`),
128   KEY `courseuserid` (course,userid)
129 ) TYPE=MyISAM COMMENT='Stores info about how to display the course';
130 # --------------------------------------------------------
134 # Table structure for table `course_meta`
137 CREATE TABLE `prefix_course_meta` (
138  `id` int(10) unsigned NOT NULL auto_increment,
139  `parent_course` int(10) NOT NULL default 0,
140  `child_course` int(10) NOT NULL default 0,
141  PRIMARY KEY (`id`),
142  KEY `parent_course` (parent_course),
143  KEY `child_course` (child_course)
144 );
145 # --------------------------------------------------------
149 # Table structure for table `course_modules`
152 CREATE TABLE `prefix_course_modules` (
153   `id` int(10) unsigned NOT NULL auto_increment,
154   `course` int(10) unsigned NOT NULL default '0',
155   `module` int(10) unsigned NOT NULL default '0',
156   `instance` int(10) unsigned NOT NULL default '0',
157   `section` int(10) unsigned NOT NULL default '0',
158   `added` int(10) unsigned NOT NULL default '0',
159   `score` tinyint(4) NOT NULL default '0',
160   `indent` int(5) unsigned NOT NULL default '0',
161   `visible` tinyint(1) NOT NULL default '1',
162   `groupmode` tinyint(4) NOT NULL default '0',
163   PRIMARY KEY  (`id`),
164   UNIQUE KEY `id` (`id`),
165   KEY `visible` (`visible`),
166   KEY `course` (`course`),
167   KEY `module` (`module`),
168   KEY `instance` (`instance`)
169 ) TYPE=MyISAM;
170 # --------------------------------------------------------
173 # Table structure for table `course_sections`
176 CREATE TABLE `prefix_course_sections` (
177   `id` int(10) unsigned NOT NULL auto_increment,
178   `course` int(10) unsigned NOT NULL default '0',
179   `section` int(10) unsigned NOT NULL default '0',
180   `summary` text NOT NULL default '',
181   `sequence` text NOT NULL default '',
182   `visible` tinyint(1) NOT NULL default '1',
183   PRIMARY KEY  (`id`),
184   KEY `coursesection` (course,section)
185 ) TYPE=MyISAM;
186 # --------------------------------------------------------
188
189 # Table structure for table `course_request`
192 CREATE TABLE `prefix_course_request`  (
193   `id` int(10) unsigned NOT NULL auto_increment,
194   `fullname` varchar(254) NOT NULL default '',
195   `shortname` varchar(15) NOT NULL default '',
196   `summary` text NOT NULL default '',
197   `reason` text NOT NULL default '',
198   `requester` int(10) NOT NULL default 0,
199   `password` varchar(50) NOT NULL default '',
200   PRIMARY KEY (`id`),
201   KEY `shortname` (`shortname`)
202 ) TYPE=MyISAM;
203 # ---------------------------------------------------------
206 # Table structure for table `coursre_allowed_modules`
207
209 CREATE TABLE `prefix_course_allowed_modules` (
210    `id` int(10) unsigned NOT NULL auto_increment,
211    `course` int(10) unsigned NOT NULL default 0,
212    `module` int(10) unsigned NOT NULL default 0,
213    PRIMARY KEY (`id`),
214    KEY `course` (`course`),
215    KEY `module` (`module`)
216 ) TYPE=MyISAM;
218 ------------------------------------------------------------
221 # Table structure for table `event`
224 CREATE TABLE `prefix_event` (
225   `id` int(10) unsigned NOT NULL auto_increment,
226   `name` varchar(255) NOT NULL default '',
227   `description` text NOT NULL default '',
228   `format` int(4) unsigned NOT NULL default '0',
229   `courseid` int(10) unsigned NOT NULL default '0',
230   `groupid` int(10) unsigned NOT NULL default '0',
231   `userid` int(10) unsigned NOT NULL default '0',
232   `repeatid` int(10) unsigned NOT NULL default '0',
233   `modulename` varchar(20) NOT NULL default '',
234   `instance` int(10) unsigned NOT NULL default '0',
235   `eventtype` varchar(20) NOT NULL default '',
236   `timestart` int(10) unsigned NOT NULL default '0',
237   `timeduration` int(10) unsigned NOT NULL default '0',
238   `visible` tinyint(4) NOT NULL default '1',
239   `uuid` char(36) NOT NULL default '',
240   `sequence` int(10) unsigned NOT NULL default '1',
241   `timemodified` int(10) unsigned NOT NULL default '0',
242   PRIMARY KEY  (`id`),
243   UNIQUE KEY `id` (`id`),
244   KEY `courseid` (`courseid`),
245   KEY `userid` (`userid`),
246   KEY `timestart` (`timestart`),
247   KEY `timeduration` (`timeduration`)
248 ) TYPE=MyISAM COMMENT='For everything with a time associated to it';
249 # --------------------------------------------------------
252 # Table structure for table `cache_filters`
255 CREATE TABLE `prefix_cache_filters` (
256   `id` int(10) unsigned NOT NULL auto_increment,
257   `filter` varchar(32) NOT NULL default '',
258   `version` int(10) unsigned NOT NULL default '0',
259   `md5key` varchar(32) NOT NULL default '',
260   `rawtext` text NOT NULL default '',
261   `timemodified` int(10) unsigned NOT NULL default '0',
262   PRIMARY KEY  (`id`),
263   KEY `filtermd5key` (filter,md5key)
264 ) TYPE=MyISAM COMMENT='For keeping information about cached data';
265 # --------------------------------------------------------
269 # Table structure for table `cache_text`
272 CREATE TABLE `prefix_cache_text` (
273   `id` int(10) unsigned NOT NULL auto_increment,
274   `md5key` varchar(32) NOT NULL default '',
275   `formattedtext` longblob NOT NULL default '',
276   `timemodified` int(10) unsigned NOT NULL default '0',
277   PRIMARY KEY  (`id`),
278   KEY `md5key` (`md5key`)
279 ) TYPE=MyISAM COMMENT='For storing temporary copies of processed texts';
280 # --------------------------------------------------------
283
284 # Table structure for table `grade_category`
285
287 CREATE TABLE `prefix_grade_category` (
288   `id` int(10) unsigned NOT NULL auto_increment,
289   `name` varchar(64) default NULL,
290   `courseid` int(10) unsigned NOT NULL default '0',
291   `drop_x_lowest` int(10) unsigned NOT NULL default '0',
292   `bonus_points` int(10) unsigned NOT NULL default '0',
293   `hidden` int(10) unsigned NOT NULL default '0',
294   `weight` decimal(5,2) default '0.00',
295   PRIMARY KEY  (`id`),
296   KEY `courseid` (`courseid`)
297 ) TYPE=MyISAM ;
299 # --------------------------------------------------------
301
302 # Table structure for table `grade_exceptions`
303
305 CREATE TABLE `prefix_grade_exceptions` (
306   `id` int(10) unsigned NOT NULL auto_increment,
307   `courseid` int(10) unsigned NOT NULL default '0',
308   `grade_itemid` int(10) unsigned NOT NULL default '0',
309   `userid` int(10) unsigned NOT NULL default '0',
310   PRIMARY KEY  (`id`),
311   KEY `courseid` (`courseid`)
312 ) TYPE=MyISAM ;
314 # --------------------------------------------------------
316
317 # Table structure for table `grade_item`
318
320 CREATE TABLE `prefix_grade_item` (
321   `id` int(10) unsigned NOT NULL auto_increment,
322   `courseid` int(10) unsigned default NULL,
323   `category` int(10) unsigned default NULL,
324   `modid` int(10) unsigned default NULL,
325   `cminstance` int(10) unsigned default NULL,
326   `scale_grade` float(11,10) default '1.0000000000',
327   `extra_credit` int(10) unsigned NOT NULL default '0',
328   `sort_order` int(10) unsigned NOT NULL default '0',
329   PRIMARY KEY  (`id`),
330   KEY `courseid` (`courseid`)
331 ) TYPE=MyISAM ;
333 # --------------------------------------------------------
335
336 # Table structure for table `grade_letter`
337
339 CREATE TABLE `prefix_grade_letter` (
340   `id` int(10) unsigned NOT NULL auto_increment,
341   `courseid` int(10) unsigned NOT NULL default '0',
342   `letter` varchar(8) NOT NULL default 'NA',
343   `grade_high` decimal(4,2) NOT NULL default '100.00',
344   `grade_low` decimal(4,2) NOT NULL default '0.00',
345   PRIMARY KEY  (`id`),
346   KEY `courseid` (`courseid`)
347 ) TYPE=MyISAM ;
349 # --------------------------------------------------------
351
352 # Table structure for table `grade_preferences`
353
355 CREATE TABLE `prefix_grade_preferences` (
356   `id` int(10) unsigned NOT NULL auto_increment,
357   `courseid` int(10) unsigned default NULL,
358   `preference` int(10) NOT NULL default '0',
359   `value` int(10) NOT NULL default '0',
360   PRIMARY KEY  (`id`),
361   UNIQUE KEY `courseidpreference` (`courseid`,`preference`)
362 ) TYPE=MyISAM;
364 # --------------------------------------------------------
367 # Table structure for table `group`
370 CREATE TABLE `prefix_groups` (
371   `id` int(10) unsigned NOT NULL auto_increment,
372   `courseid` int(10) unsigned NOT NULL default '0',
373   `name` varchar(254) NOT NULL default '',
374   `description` text NOT NULL default '',
375   `password` varchar(50) NOT NULL default '',
376   `lang` varchar(10) NOT NULL default 'en',
377   `theme` varchar(50) NOT NULL default '',
378   `picture` int(10) unsigned NOT NULL default '0',
379   `hidepicture` int(2) unsigned NOT NULL default '0',
380   `timecreated` int(10) unsigned NOT NULL default '0',
381   `timemodified` int(10) unsigned NOT NULL default '0',
382   PRIMARY KEY  (`id`),
383   UNIQUE KEY `id` (`id`),
384   KEY `courseid` (`courseid`)
385 ) TYPE=MyISAM COMMENT='Each record is a group in a course.';
386 # --------------------------------------------------------
389 # Table structure for table `group_members`
392 CREATE TABLE `prefix_groups_members` (
393   `id` int(10) unsigned NOT NULL auto_increment,
394   `groupid` int(10) unsigned NOT NULL default '0',
395   `userid` int(10) unsigned NOT NULL default '0',
396   `timeadded` int(10) unsigned NOT NULL default '0',
397   PRIMARY KEY  (`id`),
398   UNIQUE KEY `id` (`id`),
399   KEY `groupid` (`groupid`),
400   KEY `userid` (`userid`)
401 ) TYPE=MyISAM COMMENT='Lists memberships of users to groups';
402 # --------------------------------------------------------
406 # Table structure for table `log`
409 CREATE TABLE `prefix_log` (
410   `id` int(10) unsigned NOT NULL auto_increment,
411   `time` int(10) unsigned NOT NULL default '0',
412   `userid` int(10) unsigned NOT NULL default '0',
413   `ip` varchar(15) NOT NULL default '',
414   `course` int(10) unsigned NOT NULL default '0',
415   `module` varchar(20) NOT NULL default '',
416   `cmid` int(10) unsigned NOT NULL default '0',
417   `action` varchar(15) NOT NULL default '',
418   `url` varchar(100) NOT NULL default '',
419   `info` varchar(255) NOT NULL default '',
420   PRIMARY KEY  (`id`),
421   KEY `timecoursemoduleaction` (time,course,module,action),
422   KEY `coursemoduleaction` (course,module,action),
423   KEY `courseuserid` (course,userid),
424   KEY `userid` (userid),
425   KEY `info` (info)
426 ) TYPE=MyISAM COMMENT='Every action is logged as far as possible.';
427 # --------------------------------------------------------
430 # Table structure for table `log_display`
433 CREATE TABLE `prefix_log_display` (
434   `module` varchar(20) NOT NULL default '',
435   `action` varchar(20) NOT NULL default '',
436   `mtable` varchar(20) NOT NULL default '',
437   `field` varchar(40) NOT NULL default ''
438 ) TYPE=MyISAM COMMENT='For a particular module/action, specifies a moodle table/field.';
439 # --------------------------------------------------------
442 # Table structure for table `message`
445 CREATE TABLE `prefix_message` (
446   `id` int(10) unsigned NOT NULL auto_increment,
447   `useridfrom` int(10) NOT NULL default '0',
448   `useridto` int(10) NOT NULL default '0',
449   `message` text NOT NULL default '',
450   `format` int(4) unsigned NOT NULL default '0',
451   `timecreated` int(10) NOT NULL default '0',
452   `messagetype` varchar(50) NOT NULL default '',
453   PRIMARY KEY  (`id`),
454   KEY `useridfrom` (`useridfrom`),
455   KEY `useridto` (`useridto`)
456 ) TYPE=MyISAM COMMENT='Stores all unread messages';
457 # --------------------------------------------------------
460 # Table structure for table `message_read`
463 CREATE TABLE `prefix_message_read` (
464   `id` int(10) unsigned NOT NULL auto_increment,
465   `useridfrom` int(10) NOT NULL default '0',
466   `useridto` int(10) NOT NULL default '0',
467   `message` text NOT NULL default '',
468   `format` int(4) unsigned NOT NULL default '0',
469   `timecreated` int(10) NOT NULL default '0',
470   `timeread` int(10) NOT NULL default '0',
471   `messagetype` varchar(50) NOT NULL default '',
472   `mailed` tinyint(1) NOT NULL default '0',
473   PRIMARY KEY  (`id`),
474   KEY `useridfrom` (`useridfrom`),
475   KEY `useridto` (`useridto`)
476 ) TYPE=MyISAM COMMENT='Stores all messages that have been read';
477 # --------------------------------------------------------
480 # Table structure for table `message_contacts`
483 CREATE TABLE `prefix_message_contacts` (
484   `id` int(10) unsigned NOT NULL auto_increment,
485   `userid` int(10) unsigned NOT NULL default '0',
486   `contactid` int(10) unsigned NOT NULL default '0',
487   `blocked` tinyint(1) unsigned NOT NULL default '0',
488   PRIMARY KEY  (`id`),
489   UNIQUE KEY `usercontact` (`userid`,`contactid`)
490 ) TYPE=MyISAM COMMENT='Maintains lists of relationships between users';
491 # --------------------------------------------------------
494 # Table structure for table `modules`
497 CREATE TABLE `prefix_modules` (
498   `id` int(10) unsigned NOT NULL auto_increment,
499   `name` varchar(20) NOT NULL default '',
500   `version` int(10) NOT NULL default '0',
501   `cron` int(10) unsigned NOT NULL default '0',
502   `lastcron` int(10) unsigned NOT NULL default '0',
503   `search` varchar(255) NOT NULL default '',
504   `visible` tinyint(1) NOT NULL default '1',
505   PRIMARY KEY  (`id`),
506   UNIQUE KEY `id` (`id`),
507   KEY `name` (`name`)
508 ) TYPE=MyISAM;
509 # --------------------------------------------------------
513 # Table structure for table `scale`
516 CREATE TABLE `prefix_scale` (
517   `id` int(10) unsigned NOT NULL auto_increment,
518   `courseid` int(10) unsigned NOT NULL default '0',
519   `userid` int(10) unsigned NOT NULL default '0',
520   `name` varchar(255) NOT NULL default '',
521   `scale` text NOT NULL default '',
522   `description` text NOT NULL default '',
523   `timemodified` int(10) unsigned NOT NULL default '0',
524   PRIMARY KEY  (id),
525   KEY `courseid` (`courseid`)
526 ) TYPE=MyISAM COMMENT='Defines grading scales';
527 # --------------------------------------------------------
531 # Table structure for table `sessions`
534 CREATE TABLE `prefix_sessions` (
535   `sesskey` char(32) NOT null default '',
536   `expiry` int(11) unsigned NOT null default '0',
537   `expireref` varchar(64) default '',
538   `data` text NOT null default '',
539   PRIMARY KEY (`sesskey`), 
540   KEY (`expiry`) 
541 ) TYPE=MyISAM COMMENT='Optional database session storage, not used by default';
542 # --------------------------------------------------------
546 # Table structure for table `timezone`
549 CREATE TABLE `prefix_timezone` (
550   `id` int(10) NOT NULL auto_increment,
551   `name` varchar(100) NOT NULL default '',
552   `year` int(11) NOT NULL default '0',
553   `rule` varchar(20) NOT NULL default '',
554   `gmtoff` int(11) NOT NULL default '0',
555   `dstoff` int(11) NOT NULL default '0',
556   `dst_month` tinyint(2) NOT NULL default '0',
557   `dst_startday` tinyint(3) NOT NULL default '0',
558   `dst_weekday` tinyint(3) NOT NULL default '0',
559   `dst_skipweeks` tinyint(3) NOT NULL default '0',
560   `dst_time` varchar(5) NOT NULL default '00:00',
561   `std_month` tinyint(2) NOT NULL default '0',
562   `std_startday` tinyint(3) NOT NULL default '0',
563   `std_weekday` tinyint(3) NOT NULL default '0',
564   `std_skipweeks` tinyint(3) NOT NULL default '0',
565   `std_time` varchar(5) NOT NULL default '00:00',
566   PRIMARY KEY (`id`)
567 ) TYPE=MyISAM COMMENT='Rules for calculating local wall clock time for users';
571 # Table structure for table `user`
573 # When changing prefix_user, you may need to update
574 # truncate_userinfo() in moodlelib.php
576 CREATE TABLE `prefix_user` (
577   `id` int(10) unsigned NOT NULL auto_increment,
578   `auth` varchar(20) NOT NULL default 'manual',
579   `confirmed` tinyint(1) NOT NULL default '0',
580   `policyagreed` tinyint(1) NOT NULL default '0',
581   `deleted` tinyint(1) NOT NULL default '0',
582   `username` varchar(100) NOT NULL default '',
583   `password` varchar(32) NOT NULL default '',
584   `idnumber` varchar(64) default NULL,
585   `firstname` varchar(20) NOT NULL default '',
586   `lastname` varchar(20) NOT NULL default '',
587   `email` varchar(100) NOT NULL default '',
588   `emailstop` tinyint(1) unsigned NOT NULL default '0',
589   `icq` varchar(15) default NULL,
590   `skype` varchar(50) default NULL,
591   `yahoo` varchar(50) default NULL,
592   `aim` varchar(50) default NULL,
593   `msn` varchar(50) default NULL,
594   `phone1` varchar(20) default NULL,
595   `phone2` varchar(20) default NULL,
596   `institution` varchar(40) default NULL,
597   `department` varchar(30) default NULL,
598   `address` varchar(70) default NULL,
599   `city` varchar(20) default NULL,
600   `country` char(2) default NULL,
601   `lang` varchar(10) default 'en',
602   `theme` varchar(50) NOT NULL default '',
603   `timezone` varchar(100) NOT NULL default '99',
604   `firstaccess` int(10) unsigned NOT NULL default '0',
605   `lastaccess` int(10) unsigned NOT NULL default '0',
606   `lastlogin` int(10) unsigned NOT NULL default '0',
607   `currentlogin` int(10) unsigned NOT NULL default '0',
608   `lastIP` varchar(15) default NULL,
609   `secret` varchar(15) default NULL,
610   `picture` tinyint(1) default NULL,
611   `url` varchar(255) default NULL,
612   `description` text NOT NULL default '',
613   `mailformat` tinyint(1) unsigned NOT NULL default '1',
614   `maildigest` tinyint(1) unsigned NOT NULL default '0',
615   `maildisplay` tinyint(2) unsigned NOT NULL default '2',
616   `htmleditor` tinyint(1) unsigned NOT NULL default '1',
617   `autosubscribe` tinyint(1) unsigned NOT NULL default '1',
618   `trackforums` tinyint(1) unsigned NOT NULL default '0',
619   `timemodified` int(10) unsigned NOT NULL default '0',
620   PRIMARY KEY  (`id`),
621   UNIQUE KEY `id` (`id`),
622   UNIQUE KEY `username` (`username`),
623   KEY `user_deleted` (`deleted`),
624   KEY `user_confirmed` (`confirmed`),
625   KEY `user_firstname` (`firstname`),
626   KEY `user_lastname` (`lastname`),
627   KEY `user_city` (`city`),
628   KEY `user_country` (`country`),
629   KEY `user_lastaccess` (`lastaccess`),
630   KEY `user_email` (`email`)
631 ) TYPE=MyISAM COMMENT='One record for each person';
633 ALTER TABLE `prefix_user` ADD INDEX `auth` (`auth`);
634 ALTER TABLE `prefix_user` ADD INDEX `idnumber` (`idnumber`);
635 # --------------------------------------------------------
638 # Table structure for table `user_admins`
641 CREATE TABLE `prefix_user_admins` (
642   `id` int(10) unsigned NOT NULL auto_increment,
643   `userid` int(10) unsigned NOT NULL default '0',
644   PRIMARY KEY  (`id`),
645   UNIQUE KEY `id` (`id`),
646   KEY `userid` (`userid`)
647 ) TYPE=MyISAM COMMENT='One record per administrator user';
648 # --------------------------------------------------------
653 # Table structure for table `user_preferences`
656 CREATE TABLE `prefix_user_preferences` (
657   `id` int(10) unsigned NOT NULL auto_increment,
658   `userid` int(10) unsigned NOT NULL default '0',
659   `name` varchar(50) NOT NULL default '',
660   `value` varchar(255) NOT NULL default '',
661   PRIMARY KEY  (`id`),
662   UNIQUE KEY `id` (`id`),
663   KEY `useridname` (userid,name)
664 ) TYPE=MyISAM COMMENT='Allows modules to store arbitrary user preferences';
665 # --------------------------------------------------------
670 # Table structure for table `user_students`
673 CREATE TABLE `prefix_user_students` (
674   `id` int(10) unsigned NOT NULL auto_increment,
675   `userid` int(10) unsigned NOT NULL default '0',
676   `course` int(10) unsigned NOT NULL default '0',
677   `timestart` int(10) unsigned NOT NULL default '0',
678   `timeend` int(10) unsigned NOT NULL default '0',
679   `time` int(10) unsigned NOT NULL default '0',
680   `timeaccess` int(10) unsigned NOT NULL default '0',
681   `enrol` varchar(20) NOT NULL default '',  
682   PRIMARY KEY  (`id`),
683   UNIQUE KEY `id` (`id`),
684   UNIQUE KEY `courseuserid` (course,userid),
685   KEY `userid` (userid),
686   KEY `enrol` (enrol),
687   KEY `timeaccess` (timeaccess)
688 ) TYPE=MyISAM;
689 # --------------------------------------------------------
692 # Table structure for table `user_teachers`
695 CREATE TABLE `prefix_user_teachers` (
696   `id` int(10) unsigned NOT NULL auto_increment,
697   `userid` int(10) unsigned NOT NULL default '0',
698   `course` int(10) unsigned NOT NULL default '0',
699   `authority` int(10) NOT NULL default '3',
700   `role` varchar(40) NOT NULL default '',
701   `editall` int(1) unsigned NOT NULL default '1',
702   `timestart` int(10) unsigned NOT NULL default '0',
703   `timeend` int(10) unsigned NOT NULL default '0',
704   `timemodified` int(10) unsigned NOT NULL default '0',
705   `timeaccess` int(10) unsigned NOT NULL default '0',
706   `enrol` varchar(20) NOT NULL default '',  
707   PRIMARY KEY  (`id`),
708   UNIQUE KEY `id` (`id`),
709   UNIQUE KEY `courseuserid` (course,userid),
710   KEY `userid` (userid),
711   KEY `enrol` (enrol)
712 ) TYPE=MyISAM COMMENT='One record per teacher per course';
715 # Table structure for table `user_admins`
718 CREATE TABLE `prefix_user_coursecreators` (
719   `id` int(10) unsigned NOT NULL auto_increment,
720   `userid` int(10) unsigned NOT NULL default '0',
721   PRIMARY KEY  (`id`),
722   UNIQUE KEY `id` (`id`),
723   KEY `userid` (`userid`)
724 ) TYPE=MyISAM COMMENT='One record per course creator';
728 # For debugging puposes, see admin/dbperformance.php
731 CREATE TABLE `adodb_logsql` (
732  `created` datetime NOT NULL default '0000-00-00 00:00:00',
733  `sql0` varchar(250) NOT NULL default '',
734  `sql1` text NOT NULL default '',
735  `params` text NOT NULL default '',
736  `tracer` text NOT NULL default '',
737  `timer` decimal(16,6) NOT NULL default '0'
738 );
740 CREATE TABLE `prefix_stats_daily` (
741    `id` int(10) unsigned NOT NULL auto_increment,
742    `courseid` int(10) unsigned NOT NULL default 0,
743    `timeend` int(10) unsigned NOT NULL default 0,
744    `students` int(10) unsigned NOT NULL default 0,
745    `teachers` int(10) unsigned NOT NULL default 0,
746    `activestudents` int(10) unsigned NOT NULL default 0,
747    `activeteachers` int(10) unsigned NOT NULL default 0,
748    `studentreads` int(10) unsigned NOT NULL default 0,
749    `studentwrites` int(10) unsigned NOT NULL default 0,
750    `teacherreads` int(10) unsigned NOT NULL default 0,
751    `teacherwrites` int(10) unsigned NOT NULL default 0,
752    `logins` int(10) unsigned NOT NULL default 0,
753    `uniquelogins` int(10) unsigned NOT NULL default 0,
754    PRIMARY KEY (`id`),
755    KEY `courseid` (`courseid`),
756    KEY `timeend` (`timeend`)
757 );
759 CREATE TABLE prefix_stats_weekly (
760    `id` int(10) unsigned NOT NULL auto_increment,
761    `courseid` int(10) unsigned NOT NULL default 0,
762    `timeend` int(10) unsigned NOT NULL default 0,
763    `students` int(10) unsigned NOT NULL default 0,
764    `teachers` int(10) unsigned NOT NULL default 0,
765    `activestudents` int(10) unsigned NOT NULL default 0,
766    `activeteachers` int(10) unsigned NOT NULL default 0,
767    `studentreads` int(10) unsigned NOT NULL default 0,
768    `studentwrites` int(10) unsigned NOT NULL default 0,
769    `teacherreads` int(10) unsigned NOT NULL default 0,
770    `teacherwrites` int(10) unsigned NOT NULL default 0,
771    `logins` int(10) unsigned NOT NULL default 0,
772    `uniquelogins` int(10) unsigned NOT NULL default 0,
773    PRIMARY KEY (`id`),
774    KEY `courseid` (`courseid`),
775    KEY `timeend` (`timeend`)     
776 );
778 CREATE TABLE prefix_stats_monthly (
779    `id` int(10) unsigned NOT NULL auto_increment,
780    `courseid` int(10) unsigned NOT NULL default 0,
781    `timeend` int(10) unsigned NOT NULL default 0,
782    `students` int(10) unsigned NOT NULL default 0,
783    `teachers` int(10) unsigned NOT NULL default 0,
784    `activestudents` int(10) unsigned NOT NULL default 0,
785    `activeteachers` int(10) unsigned NOT NULL default 0,
786    `studentreads` int(10) unsigned NOT NULL default 0,
787    `studentwrites` int(10) unsigned NOT NULL default 0,
788    `teacherreads` int(10) unsigned NOT NULL default 0,
789    `teacherwrites` int(10) unsigned NOT NULL default 0,
790    `logins` int(10) unsigned NOT NULL default 0,
791    `uniquelogins` int(10) unsigned NOT NULL default 0,
792    PRIMARY KEY (`id`),
793    KEY `courseid` (`courseid`),
794    KEY `timeend` (`timeend`)     
795 );
797 CREATE TABLE prefix_stats_user_daily (
798    `id` int(10) unsigned NOT NULL auto_increment,
799    `courseid` int(10) unsigned NOT NULL default 0,
800    `userid` int(10) unsigned NOT NULL default 0,
801    `roleid` int(10) unsigned NOT NULL default 0,
802    `timeend` int(10) unsigned NOT NULL default 0,
803    `reads` int(10) unsigned NOT NULL default 0,
804    `writes` int(10) unsigned NOT NULL default 0,
805    `stattype` varchar(30) NOT NULL default '',
806    PRIMARY KEY (`id`),
807    KEY `courseid` (`courseid`),
808    KEY `userid` (`userid`),
809    KEY `roleid` (`roleid`),
810    KEY `timeend` (`timeend`)    
811 );
813 CREATE TABLE prefix_stats_user_weekly (
814    `id` int(10) unsigned NOT NULL auto_increment,
815    `courseid` int(10) unsigned NOT NULL default 0,
816    `userid` int(10) unsigned NOT NULL default 0,
817    `roleid` int(10) unsigned NOT NULL default 0,
818    `timeend` int(10) unsigned NOT NULL default 0,
819    `reads` int(10) unsigned NOT NULL default 0,
820    `writes` int(10) unsigned NOT NULL default 0,
821    `stattype` varchar(30) NOT NULL default '',
822    PRIMARY KEY (`id`),
823    KEY `courseid` (`courseid`),
824    KEY `userid` (`userid`),
825    KEY `roleid` (`roleid`),
826    KEY `timeend` (`timeend`)    
827 );
829 CREATE TABLE prefix_stats_user_monthly (
830    `id` int(10) unsigned NOT NULL auto_increment,
831    `courseid` int(10) unsigned NOT NULL default 0,
832    `userid` int(10) unsigned NOT NULL default 0,
833    `roleid` int(10) unsigned NOT NULL default 0,
834    `timeend` int(10) unsigned NOT NULL default 0,
835    `reads` int(10) unsigned NOT NULL default 0,
836    `writes` int(10) unsigned NOT NULL default 0,
837    `stattype` varchar(30) NOT NULL default '',
838    PRIMARY KEY (`id`),
839    KEY `courseid` (`courseid`),
840    KEY `userid` (`userid`),
841    KEY `roleid` (`roleid`),
842    KEY `timeend` (`timeend`)    
843 );
846 # Table structure for table `prefix_post`
848 CREATE TABLE prefix_post (
849   `id` int(10) NOT NULL auto_increment,
850   `module` varchar(20) NOT NULL default '',
851   `userid` int(10) NOT NULL default '0',
852   `courseid` int(10) NOT NULL default '0',
853   `groupid` int(10) NOT NULL default '0',
854   `moduleid` int(10) NOT NULL default '0',
855   `coursemoduleid` int(10) NOT NULL default '0',
856   `subject` varchar(128) NOT NULL default '',
857   `summary` longtext,
858   `content` longtext,
859   `uniquehash` varchar(128) NOT NULL default '',
860   `rating` int(10) NOT NULL default '0',
861   `format` int(10) NOT NULL default '0',
862   `publishstate` enum('draft','site','public') NOT NULL default 'draft',
863   `lastmodified` int(10) NOT NULL default '0',
864   `created` int(10) NOT NULL default '0',
865   PRIMARY KEY  (`id`),
866   UNIQUE KEY `id_user_idx` (`id`, `userid`),
867   KEY `post_lastmodified_idx` (`lastmodified`),
868   KEY `post_module_idx` (`module`),
869   KEY `post_subject_idx` (`subject`)
870 ) TYPE=MyISAM  COMMENT='Generic post table to hold data blog entries etc in different modules.';
873 # tags are not limited to blogs
874 CREATE TABLE prefix_tags (
875   `id` int(10) NOT NULL auto_increment,
876   `type` varchar(255) NOT NULL default 'official',
877   `userid` int(10) NOT NULL default '0',
878   `text` varchar(255) NOT NULL default '',
879   PRIMARY KEY  (`id`)
880 ) TYPE=MyISAM COMMENT ='tags structure for moodle.';
882 # instance of a tag for a blog
883 CREATE TABLE prefix_blog_tag_instance (
884   `id` int(10) NOT NULL auto_increment,
885   `entryid` int(10) NOT NULL default '0',
886   `tagid` int(10) NOT NULL default '0',
887   `groupid` int(10) NOT NULL default '0',
888   `courseid` int(10) NOT NULL default '0',
889   `userid` int(10) NOT NULL default '0',
890   `timemodified` int(10) unsigned NOT NULL default '0',
891   KEY `bti_entryid_idx` (`entryid`),
892   KEY `bti_tagid_idx` (`tagid`),
893   PRIMARY KEY  (`id`)
894 ) TYPE=MyISAM COMMENT ='tag instance for blogs.';
897 INSERT INTO prefix_log_display VALUES ('user', 'view', 'user', 'CONCAT(firstname," ",lastname)');
898 INSERT INTO prefix_log_display VALUES ('course', 'user report', 'user', 'CONCAT(firstname," ",lastname)');
899 INSERT INTO prefix_log_display VALUES ('course', 'view', 'course', 'fullname');
900 INSERT INTO prefix_log_display VALUES ('course', 'update', 'course', 'fullname');
901 INSERT INTO prefix_log_display VALUES ('course', 'enrol', 'course', 'fullname');
902 INSERT INTO prefix_log_display VALUES ('message', 'write', 'user', 'CONCAT(firstname," ",lastname)');
903 INSERT INTO prefix_log_display VALUES ('message', 'read', 'user', 'CONCAT(firstname," ",lastname)');
904 INSERT INTO prefix_log_display VALUES ('message', 'add contact', 'user', 'CONCAT(firstname," ",lastname)');
905 INSERT INTO prefix_log_display VALUES ('message', 'remove contact', 'user', 'CONCAT(firstname," ",lastname)');
906 INSERT INTO prefix_log_display VALUES ('message', 'block contact', 'user', 'CONCAT(firstname," ",lastname)');
907 INSERT INTO prefix_log_display VALUES ('message', 'unblock contact', 'user', 'CONCAT(firstname," ",lastname)');