2014-12-01 23:55:08 +01:00
CREATE DATABASE IF NOT EXISTS swad DEFAULT CHARACTER SET = latin1 DEFAULT COLLATE latin1_spanish_ci ;
USE swad ;
--
2021-03-26 00:07:21 +01:00
-- Table act_frequent: stores the recent actions more frequently made by each user
2014-12-01 23:55:08 +01:00
--
2021-03-26 00:07:21 +01:00
CREATE TABLE IF NOT EXISTS act_frequent (
2014-12-01 23:55:08 +01:00
UsrCod INT NOT NULL ,
ActCod INT NOT NULL ,
Score FLOAT NOT NULL ,
LastClick DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod , ActCod ) ) ;
--
2016-12-01 01:39:06 +01:00
-- Table agendas: stores users' agendas
--
2021-03-15 18:33:17 +01:00
CREATE TABLE IF NOT EXISTS agd_agendas (
2016-12-01 01:39:06 +01:00
AgdCod INT NOT NULL AUTO_INCREMENT ,
UsrCod INT NOT NULL ,
2016-12-03 17:34:07 +01:00
Public ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2016-12-01 01:39:06 +01:00
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
2017-03-08 20:31:49 +01:00
Event VARCHAR ( 2047 ) NOT NULL ,
Location VARCHAR ( 2047 ) NOT NULL ,
2016-12-01 01:39:06 +01:00
Txt TEXT NOT NULL ,
UNIQUE INDEX ( AgdCod ) ,
2016-12-03 17:34:07 +01:00
INDEX ( UsrCod , Public ) ) ;
2016-12-01 01:39:06 +01:00
--
2021-03-15 18:45:09 +01:00
-- Table ann_announcements: stores global announcements
2014-12-01 23:55:08 +01:00
--
2021-03-15 18:45:09 +01:00
CREATE TABLE IF NOT EXISTS ann_announcements (
2014-12-01 23:55:08 +01:00
AnnCod INT NOT NULL AUTO_INCREMENT ,
2015-11-01 20:21:59 +01:00
Status TINYINT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
Roles INT NOT NULL DEFAULT 0 ,
Subject TEXT NOT NULL ,
Content TEXT NOT NULL ,
2015-11-01 20:21:59 +01:00
UNIQUE INDEX ( AnnCod ) ,
INDEX ( Status ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-15 18:45:09 +01:00
-- Table ann_seen: stores users who have seen global announcements
--
CREATE TABLE IF NOT EXISTS ann_seen (
AnnCod INT NOT NULL ,
UsrCod INT NOT NULL ,
UNIQUE INDEX ( AnnCod , UsrCod ) ) ;
--
2021-03-24 10:27:59 +01:00
-- Table api_keys: stores the keys used in the API / web service
--
CREATE TABLE IF NOT EXISTS api_keys (
WSKey CHAR ( 43 ) NOT NULL ,
UsrCod INT NOT NULL ,
PlgCod INT NOT NULL ,
LastTime DATETIME NOT NULL ,
UNIQUE INDEX ( WSKey ) ,
INDEX ( UsrCod ) ,
INDEX ( PlgCod ) ,
INDEX ( LastTime ) ) ;
--
2021-03-16 00:58:21 +01:00
-- Table asg_assignments: stores the assignments proposed by the teachers to their students
2014-12-01 23:55:08 +01:00
--
2021-03-16 00:58:21 +01:00
CREATE TABLE IF NOT EXISTS asg_assignments (
2014-12-01 23:55:08 +01:00
AsgCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
NumNotif INT NOT NULL DEFAULT 0 ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
2017-03-08 21:05:42 +01:00
Title VARCHAR ( 2047 ) NOT NULL ,
Folder VARBINARY ( 255 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
Txt TEXT NOT NULL ,
UNIQUE INDEX ( AsgCod ) ,
INDEX ( CrsCod , Hidden ) ) ;
--
2021-03-20 14:46:34 +01:00
-- Table asg_groups: stores the groups associated to assigments
2021-03-16 00:58:21 +01:00
--
2021-03-20 14:46:34 +01:00
CREATE TABLE IF NOT EXISTS asg_groups (
2021-03-16 00:58:21 +01:00
AsgCod INT NOT NULL ,
GrpCod INT NOT NULL ,
UNIQUE INDEX ( AsgCod , GrpCod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table att_events: stores events used to control attendance
--
CREATE TABLE IF NOT EXISTS att_events (
AttCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
CommentTchVisible ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2017-03-09 01:33:09 +01:00
Title VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
Txt TEXT NOT NULL ,
UNIQUE INDEX ( AttCod ) ,
INDEX ( CrsCod , Hidden ) ) ;
--
2021-03-20 14:56:50 +01:00
-- Table att_groups: stores groups associated to control attendance
2014-12-01 23:55:08 +01:00
--
2021-03-20 14:56:50 +01:00
CREATE TABLE IF NOT EXISTS att_groups (
2014-12-01 23:55:08 +01:00
AttCod INT NOT NULL ,
GrpCod INT NOT NULL ,
UNIQUE INDEX ( AttCod , GrpCod ) ) ;
--
2021-03-23 09:06:34 +01:00
-- Table att_users: stores users who have attended to events
2014-12-01 23:55:08 +01:00
--
2021-03-23 09:06:34 +01:00
CREATE TABLE IF NOT EXISTS att_users (
2014-12-01 23:55:08 +01:00
AttCod INT NOT NULL ,
UsrCod INT NOT NULL ,
Present ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' Y ' ,
CommentStd TEXT NOT NULL ,
CommentTch TEXT NOT NULL ,
UNIQUE INDEX ( AttCod , UsrCod ) ,
INDEX ( UsrCod ) ) ;
--
2021-03-17 00:28:19 +01:00
-- Table ban_banners: stores advertising banners
2014-12-01 23:55:08 +01:00
--
2021-03-17 00:28:19 +01:00
CREATE TABLE IF NOT EXISTS ban_banners (
2014-12-01 23:55:08 +01:00
BanCod INT NOT NULL AUTO_INCREMENT ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2017-03-09 11:16:17 +01:00
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
Img VARCHAR ( 255 ) NOT NULL ,
WWW VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( BanCod ) ,
INDEX ( Hidden ) ) ;
--
2021-03-17 10:27:58 +01:00
-- Table bld_buildings: buildings in a center
2020-04-14 22:45:10 +02:00
--
2021-03-17 10:27:58 +01:00
CREATE TABLE IF NOT EXISTS bld_buildings (
2020-04-14 22:45:10 +02:00
BldCod INT NOT NULL AUTO_INCREMENT ,
CtrCod INT NOT NULL ,
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
Location VARCHAR ( 2047 ) NOT NULL ,
UNIQUE INDEX ( BldCod ) ,
INDEX ( CtrCod ) ) ;
--
2021-03-24 10:09:40 +01:00
-- Table brw_caches: stores the media private paths linked from public directories in current session
--
CREATE TABLE IF NOT EXISTS brw_caches (
SessionId CHAR ( 43 ) NOT NULL ,
PrivPath TEXT COLLATE latin1_bin NOT NULL ,
TmpPubDir TEXT COLLATE latin1_bin NOT NULL ,
INDEX ( SessionId ) ) ;
--
2021-03-17 14:34:40 +01:00
-- Table brw_clipboards: clipboard (paths used to copy-paste folders and files)
2014-12-01 23:55:08 +01:00
--
2021-03-17 14:34:40 +01:00
CREATE TABLE IF NOT EXISTS brw_clipboards (
2014-12-01 23:55:08 +01:00
UsrCod INT NOT NULL ,
FileBrowser TINYINT NOT NULL ,
2015-01-24 19:30:44 +01:00
Cod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
WorksUsrCod INT NOT NULL ,
FileType TINYINT NOT NULL DEFAULT 0 ,
Path TEXT COLLATE latin1_bin NOT NULL ,
CopyTime TIMESTAMP ,
UNIQUE INDEX ( UsrCod ) ,
2015-01-24 19:30:44 +01:00
INDEX ( FileBrowser , Cod ) ,
INDEX ( WorksUsrCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-24 10:01:49 +01:00
-- Table brw_expanded: stores the expanded folders for each user
2021-03-18 09:29:28 +01:00
--
2021-03-24 10:01:49 +01:00
CREATE TABLE IF NOT EXISTS brw_expanded (
2021-03-18 09:29:28 +01:00
UsrCod INT NOT NULL ,
FileBrowser TINYINT NOT NULL ,
Cod INT NOT NULL DEFAULT - 1 ,
WorksUsrCod INT NOT NULL ,
Path TEXT COLLATE latin1_bin NOT NULL ,
ClickTime DATETIME NOT NULL ,
INDEX ( UsrCod , FileBrowser , Cod ) ,
INDEX ( FileBrowser , Cod ) ,
INDEX ( WorksUsrCod ) ) ;
--
2021-03-18 12:44:00 +01:00
-- Table brw_files: stores metadata about each file
--
CREATE TABLE IF NOT EXISTS brw_files (
FilCod INT NOT NULL AUTO_INCREMENT ,
FileBrowser TINYINT NOT NULL ,
Cod INT NOT NULL DEFAULT - 1 ,
ZoneUsrCod INT NOT NULL DEFAULT - 1 ,
PublisherUsrCod INT NOT NULL ,
FileType TINYINT NOT NULL DEFAULT 0 ,
Path TEXT COLLATE latin1_bin NOT NULL ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Public ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
License TINYINT NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( FilCod ) ,
INDEX ( FileBrowser , Cod , ZoneUsrCod ) ,
INDEX ( ZoneUsrCod ) ,
INDEX ( PublisherUsrCod ) ) ;
--
2021-03-18 09:52:21 +01:00
-- Table brw_last: stores the last click of every user in each file browser zone
--
CREATE TABLE IF NOT EXISTS brw_last (
UsrCod INT NOT NULL ,
FileBrowser TINYINT NOT NULL ,
Cod INT NOT NULL DEFAULT - 1 ,
LastClick DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod , FileBrowser , Cod ) ) ;
--
2021-03-18 10:42:43 +01:00
-- Table brw_sizes: stores the sizes of the file zones
2021-03-18 09:52:21 +01:00
--
2021-03-18 10:42:43 +01:00
CREATE TABLE IF NOT EXISTS brw_sizes (
2021-03-18 09:52:21 +01:00
FileBrowser TINYINT NOT NULL ,
Cod INT NOT NULL DEFAULT - 1 ,
ZoneUsrCod INT NOT NULL DEFAULT - 1 ,
NumLevels INT NOT NULL ,
NumFolders INT NOT NULL ,
NumFiles INT NOT NULL ,
TotalSize BIGINT NOT NULL ,
UNIQUE INDEX ( FileBrowser , Cod , ZoneUsrCod ) ,
INDEX ( ZoneUsrCod ) ) ;
--
2021-03-24 10:09:40 +01:00
-- Table brw_views: stores the number of times each user has seen each file
--
CREATE TABLE IF NOT EXISTS brw_views (
FilCod INT NOT NULL ,
UsrCod INT NOT NULL ,
NumViews INT NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( FilCod , UsrCod ) , INDEX ( UsrCod ) ) ;
--
2021-03-24 10:35:42 +01:00
-- Table cfe_exams: stores the calls for exams
2021-03-18 02:04:26 +01:00
--
2021-03-24 10:35:42 +01:00
CREATE TABLE IF NOT EXISTS cfe_exams (
2021-03-18 02:04:26 +01:00
ExaCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Status TINYINT NOT NULL DEFAULT 0 ,
NumNotif INT NOT NULL DEFAULT 0 ,
CrsFullName VARCHAR ( 2047 ) NOT NULL ,
Year TINYINT NOT NULL ,
ExamSession VARCHAR ( 2047 ) NOT NULL ,
CallDate DATETIME NOT NULL ,
ExamDate DATETIME NOT NULL ,
Duration TIME NOT NULL ,
Place TEXT NOT NULL ,
ExamMode TEXT NOT NULL ,
Structure TEXT NOT NULL ,
DocRequired TEXT NOT NULL ,
MatRequired TEXT NOT NULL ,
MatAllowed TEXT NOT NULL ,
OtherInfo TEXT NOT NULL ,
UNIQUE INDEX ( ExaCod ) ,
INDEX ( CrsCod , Status ) ,
INDEX ( Status ) ) ;
--
2021-03-17 14:34:40 +01:00
-- Table cht_rooms: stores number of users in each chat room (this table is not used now)
--
CREATE TABLE IF NOT EXISTS cht_rooms (
RoomCode VARCHAR ( 16 ) NOT NULL ,
NumUsrs INT NOT NULL ,
UNIQUE INDEX ( RoomCode ) ) ;
--
2021-03-07 17:45:36 +01:00
-- Table crs_courses: stores the courses/subjects
2014-12-01 23:55:08 +01:00
--
2021-03-07 17:45:36 +01:00
CREATE TABLE IF NOT EXISTS crs_courses (
2014-12-01 23:55:08 +01:00
CrsCod INT NOT NULL AUTO_INCREMENT ,
DegCod INT NOT NULL DEFAULT - 1 ,
Year TINYINT NOT NULL DEFAULT 0 ,
InsCrsCod CHAR ( 7 ) NOT NULL ,
2019-03-04 15:15:22 +01:00
Status TINYINT NOT NULL DEFAULT 0 ,
RequesterUsrCod INT NOT NULL DEFAULT - 1 ,
2017-03-10 23:19:08 +01:00
ShortName VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL ,
FullName VARCHAR ( 2047 ) COLLATE latin1_spanish_ci NOT NULL ,
2016-06-09 09:58:37 +02:00
NumIndicators INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( CrsCod ) ,
2015-12-06 01:02:47 +01:00
INDEX ( DegCod , Year ) ,
2014-12-01 23:55:08 +01:00
INDEX ( Status ) ) ;
--
2021-03-23 23:23:10 +01:00
-- Table grp_groups: stores the groups in courses
2014-12-01 23:55:08 +01:00
--
2021-03-23 23:23:10 +01:00
CREATE TABLE IF NOT EXISTS grp_groups (
2014-12-01 23:55:08 +01:00
GrpCod INT NOT NULL AUTO_INCREMENT ,
GrpTypCod INT NOT NULL ,
2017-03-11 00:47:23 +01:00
GrpName VARCHAR ( 2047 ) NOT NULL ,
2020-04-14 17:15:17 +02:00
RooCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
MaxStudents INT NOT NULL ,
Open ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
FileZones ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( GrpCod ) ,
2019-01-04 11:59:31 +01:00
INDEX ( GrpTypCod ) ,
2020-04-14 17:15:17 +02:00
INDEX ( RooCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-24 00:03:35 +01:00
-- Table grp_types: stores the types of groups in courses
2014-12-01 23:55:08 +01:00
--
2021-03-24 00:03:35 +01:00
CREATE TABLE IF NOT EXISTS grp_types (
2014-12-01 23:55:08 +01:00
GrpTypCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
2017-03-11 00:47:23 +01:00
GrpTypName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
Mandatory ENUM ( ' N ' , ' Y ' ) NOT NULL ,
Multiple ENUM ( ' N ' , ' Y ' ) NOT NULL ,
MustBeOpened ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2016-04-30 17:16:41 +02:00
OpenTime DATETIME NOT NULL ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( GrpTypCod ) ,
INDEX ( CrsCod ) ) ;
--
2021-03-24 00:03:35 +01:00
-- Table grp_users: stores the users beloging to each group
2014-12-01 23:55:08 +01:00
--
2021-03-24 00:03:35 +01:00
CREATE TABLE IF NOT EXISTS grp_users (
2014-12-01 23:55:08 +01:00
GrpCod INT NOT NULL ,
UsrCod INT NOT NULL ,
UNIQUE INDEX ( GrpCod , UsrCod ) ,
INDEX ( GrpCod ) ,
INDEX ( UsrCod ) ) ;
--
-- Table crs_info_read: stores the users who have read the information with mandatory reading
--
CREATE TABLE IF NOT EXISTS crs_info_read (
UsrCod INT NOT NULL ,
CrsCod INT NOT NULL ,
InfoType ENUM ( ' intro ' , ' description ' , ' theory ' , ' practices ' , ' bibliography ' , ' FAQ ' , ' links ' , ' assessment ' ) NOT NULL ,
UNIQUE INDEX ( UsrCod , CrsCod , InfoType ) ) ;
--
-- Table crs_info_src: stores the sources of information in courses
--
CREATE TABLE IF NOT EXISTS crs_info_src (
CrsCod INT NOT NULL DEFAULT - 1 ,
InfoType ENUM ( ' intro ' , ' description ' , ' theory ' , ' practices ' , ' bibliography ' , ' FAQ ' , ' links ' , ' assessment ' ) NOT NULL ,
InfoSrc ENUM ( ' none ' , ' editor ' , ' plain_text ' , ' rich_text ' , ' page ' , ' URL ' ) NOT NULL ,
MustBeRead ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( CrsCod , InfoType ) ) ;
--
-- Table crs_info_txt: stores the text content of information in courses
--
CREATE TABLE IF NOT EXISTS crs_info_txt (
CrsCod INT NOT NULL DEFAULT - 1 ,
InfoType ENUM ( ' intro ' , ' description ' , ' theory ' , ' practices ' , ' bibliography ' , ' FAQ ' , ' links ' , ' assessment ' ) NOT NULL ,
2015-04-07 21:44:24 +02:00
InfoTxtHTML LONGTEXT NOT NULL ,
InfoTxtMD LONGTEXT NOT NULL ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( CrsCod , InfoType ) ) ;
--
-- Table crs_last: stores last access to courses from students or teachers
--
CREATE TABLE IF NOT EXISTS crs_last (
CrsCod INT NOT NULL ,
2016-04-30 17:16:41 +02:00
LastTime DATETIME NOT NULL ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( CrsCod ) ,
INDEX ( LastTime ) ) ;
--
-- Table crs_record_fields: stores the fields in the course records
--
CREATE TABLE IF NOT EXISTS crs_record_fields (
FieldCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
2017-03-11 18:59:13 +01:00
FieldName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
NumLines INT NOT NULL ,
Visibility TINYINT NOT NULL ,
UNIQUE INDEX ( FieldCod ) ,
INDEX ( CrsCod ) ) ;
--
-- Table crs_records: stores the contents of course records
--
CREATE TABLE IF NOT EXISTS crs_records (
FieldCod INT NOT NULL ,
UsrCod INT NOT NULL ,
Txt TEXT NOT NULL ,
UNIQUE INDEX ( FieldCod , UsrCod ) ) ;
--
2021-03-24 13:12:54 +01:00
-- Table crs_requests: stores requests for enrollment in courses
--
CREATE TABLE IF NOT EXISTS crs_requests (
ReqCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
Role TINYINT NOT NULL DEFAULT 0 ,
RequestTime DATETIME NOT NULL ,
UNIQUE INDEX ( ReqCod ) ,
UNIQUE INDEX ( CrsCod , UsrCod ) ,
INDEX ( UsrCod ) ) ;
--
2021-03-23 16:47:29 +01:00
-- Table crs_users: stores who users belong to what courses
2014-12-01 23:55:08 +01:00
--
2021-03-23 16:47:29 +01:00
CREATE TABLE IF NOT EXISTS crs_users (
2020-04-30 16:10:05 +02:00
CrsCod INT NOT NULL ,
2014-12-01 23:55:08 +01:00
UsrCod INT NOT NULL ,
Role TINYINT NOT NULL DEFAULT 0 ,
Accepted ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2020-04-30 16:10:05 +02:00
UNIQUE INDEX ( CrsCod , UsrCod ) ,
UNIQUE INDEX ( CrsCod , UsrCod , Role ) ,
UNIQUE INDEX ( UsrCod , CrsCod ) ,
UNIQUE INDEX ( UsrCod , CrsCod , Role ) ,
UNIQUE INDEX ( Role , CrsCod , UsrCod ) ,
UNIQUE INDEX ( Role , UsrCod , CrsCod ) ,
INDEX ( CrsCod , Role ) ,
INDEX ( UsrCod , Role ) ) ;
--
2021-03-24 13:12:54 +01:00
-- Table crs_user_settings: stores last settings (preferences) of users in courses
2020-04-30 16:10:05 +02:00
--
2021-03-24 13:12:54 +01:00
CREATE TABLE IF NOT EXISTS crs_user_settings (
2020-04-30 16:10:05 +02:00
UsrCod INT NOT NULL ,
CrsCod INT NOT NULL ,
2014-12-01 23:55:08 +01:00
LastDowGrpCod INT NOT NULL DEFAULT - 1 ,
LastComGrpCod INT NOT NULL DEFAULT - 1 ,
LastAssGrpCod INT NOT NULL DEFAULT - 1 ,
NumAccTst INT NOT NULL DEFAULT 0 ,
2019-03-04 15:15:22 +01:00
LastAccTst DATETIME NOT NULL ,
NumQstsLastTst INT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
UsrListType ENUM ( ' classphoto ' , ' list ' ) NOT NULL DEFAULT ' classphoto ' ,
ColsClassPhoto TINYINT NOT NULL ,
ListWithPhotos ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' Y ' ,
2020-04-30 16:10:05 +02:00
UNIQUE INDEX ( UsrCod , CrsCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-08 09:48:13 +01:00
-- Table ctr_centers: centers (faculties, schools...)
--
CREATE TABLE IF NOT EXISTS ctr_centers (
CtrCod INT NOT NULL AUTO_INCREMENT ,
InsCod INT NOT NULL ,
PlcCod INT NOT NULL DEFAULT - 1 ,
Status TINYINT NOT NULL DEFAULT 0 ,
RequesterUsrCod INT NOT NULL DEFAULT - 1 ,
Latitude DOUBLE PRECISION NOT NULL DEFAULT 0 ,
Longitude DOUBLE PRECISION NOT NULL DEFAULT 0 ,
Altitude DOUBLE PRECISION NOT NULL DEFAULT 0 ,
ShortName VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL ,
FullName VARCHAR ( 2047 ) COLLATE latin1_spanish_ci NOT NULL ,
WWW VARCHAR ( 255 ) NOT NULL ,
PhotoAttribution TEXT NOT NULL ,
UNIQUE INDEX ( CtrCod ) ,
INDEX ( InsCod ) ,
INDEX ( PlcCod ) ,
INDEX ( Status ) ) ;
--
-- Table cty_countrs: stores the countries
--
CREATE TABLE IF NOT EXISTS cty_countrs (
CtyCod INT NOT NULL ,
Alpha2 CHAR ( 2 ) NOT NULL ,
MapAttribution TEXT NOT NULL ,
Name_ca VARCHAR ( 767 ) NOT NULL ,
Name_de VARCHAR ( 767 ) NOT NULL ,
Name_en VARCHAR ( 767 ) NOT NULL ,
Name_es VARCHAR ( 767 ) NOT NULL ,
Name_fr VARCHAR ( 767 ) NOT NULL ,
Name_gn VARCHAR ( 767 ) NOT NULL ,
Name_it VARCHAR ( 767 ) NOT NULL ,
Name_pl VARCHAR ( 767 ) NOT NULL ,
Name_pt VARCHAR ( 767 ) NOT NULL ,
2022-06-22 01:33:08 +02:00
Name_tr VARCHAR ( 767 ) NOT NULL ,
2021-03-08 09:48:13 +01:00
WWW_ca VARCHAR ( 255 ) NOT NULL ,
WWW_de VARCHAR ( 255 ) NOT NULL ,
WWW_en VARCHAR ( 255 ) NOT NULL ,
WWW_es VARCHAR ( 255 ) NOT NULL ,
WWW_fr VARCHAR ( 255 ) NOT NULL ,
WWW_gn VARCHAR ( 255 ) NOT NULL ,
WWW_it VARCHAR ( 255 ) NOT NULL ,
WWW_pl VARCHAR ( 255 ) NOT NULL ,
WWW_pt VARCHAR ( 255 ) NOT NULL ,
2022-06-22 01:33:08 +02:00
WWW_tr VARCHAR ( 255 ) NOT NULL ,
2021-03-08 09:48:13 +01:00
UNIQUE INDEX ( CtyCod ) ,
UNIQUE INDEX ( Alpha2 ) ,
INDEX ( Name_ca ) ,
INDEX ( Name_de ) ,
INDEX ( Name_en ) ,
INDEX ( Name_es ) ,
INDEX ( Name_fr ) ,
INDEX ( Name_gn ) ,
INDEX ( Name_it ) ,
INDEX ( Name_pl ) ,
2022-06-22 01:33:08 +02:00
INDEX ( Name_pt ) ,
INDEX ( Name_tr ) ) ;
2021-03-08 09:48:13 +01:00
--
2021-03-20 14:36:25 +01:00
-- Table dbg_debug: used for debugging purposes
2014-12-01 23:55:08 +01:00
--
2021-03-20 14:36:25 +01:00
CREATE TABLE IF NOT EXISTS dbg_debug (
2014-12-01 23:55:08 +01:00
DebugTime DATETIME NOT NULL ,
Txt TEXT NOT NULL ,
INDEX ( DebugTime ) ) ;
--
2021-03-06 00:38:52 +01:00
-- Table deg_degrees: stores the degrees
2014-12-01 23:55:08 +01:00
--
2021-03-06 00:38:52 +01:00
CREATE TABLE IF NOT EXISTS deg_degrees (
2014-12-01 23:55:08 +01:00
DegCod INT NOT NULL AUTO_INCREMENT ,
CtrCod INT NOT NULL ,
DegTypCod INT NOT NULL ,
Status TINYINT NOT NULL DEFAULT 0 ,
RequesterUsrCod INT NOT NULL DEFAULT - 1 ,
2017-03-11 20:59:09 +01:00
ShortName VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL ,
FullName VARCHAR ( 2047 ) COLLATE latin1_spanish_ci NOT NULL ,
2014-12-01 23:55:08 +01:00
WWW VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( DegCod ) ,
INDEX ( CtrCod ) ,
INDEX ( DegTypCod ) ,
INDEX ( Status ) ) ;
--
2021-03-06 00:38:52 +01:00
-- Table deg_types: stores the types of degree
--
CREATE TABLE IF NOT EXISTS deg_types (
DegTypCod INT NOT NULL AUTO_INCREMENT ,
DegTypName VARCHAR ( 511 ) NOT NULL ,
UNIQUE INDEX ( DegTypCod ) ) ;
--
2021-03-17 23:13:13 +01:00
-- Table dpt_departments: stores the departments
2014-12-01 23:55:08 +01:00
--
2021-03-17 23:13:13 +01:00
CREATE TABLE IF NOT EXISTS dpt_departments (
2014-12-01 23:55:08 +01:00
DptCod INT NOT NULL AUTO_INCREMENT ,
InsCod INT NOT NULL ,
2017-03-11 21:14:38 +01:00
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
WWW VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( DptCod ) ,
INDEX ( InsCod ) ) ;
--
2020-04-22 22:40:07 +02:00
-- Table exa_exams: stores the exams
--
CREATE TABLE IF NOT EXISTS exa_exams (
ExaCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UsrCod INT NOT NULL ,
MaxGrade DOUBLE PRECISION NOT NULL DEFAULT 1 ,
Visibility INT NOT NULL DEFAULT 0 x1f ,
Title VARCHAR ( 2047 ) NOT NULL ,
Txt TEXT NOT NULL ,
UNIQUE INDEX ( ExaCod ) ,
INDEX ( CrsCod ) ) ;
--
2021-03-24 13:36:04 +01:00
-- Table exa_groups: stores the groups associated to each session in an exam
--
CREATE TABLE IF NOT EXISTS exa_groups (
SesCod INT NOT NULL ,
GrpCod INT NOT NULL ,
UNIQUE INDEX ( SesCod , GrpCod ) ) ;
--
2020-05-22 20:10:45 +02:00
-- Table exa_log: stores the access log to exam prints
--
CREATE TABLE IF NOT EXISTS exa_log (
LogCod INT NOT NULL ,
PrnCod INT NOT NULL ,
ActCod INT NOT NULL ,
2020-05-23 13:24:08 +02:00
QstInd INT NOT NULL DEFAULT - 1 ,
2020-05-23 19:08:59 +02:00
CanAnswer ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2020-05-22 20:10:45 +02:00
ClickTime DATETIME NOT NULL ,
IP CHAR ( 15 ) NOT NULL ,
UNIQUE INDEX ( LogCod ) ,
2020-05-24 15:42:51 +02:00
UNIQUE INDEX ( PrnCod , LogCod ) ,
2020-05-22 20:10:45 +02:00
INDEX ( ClickTime ) ) ;
--
2021-03-24 13:36:04 +01:00
-- Table exa_log_sessions: stores the session id fields for access log to exam prints
2020-05-24 18:26:40 +02:00
--
2021-03-24 13:36:04 +01:00
CREATE TABLE IF NOT EXISTS exa_log_sessions (
2020-05-24 18:26:40 +02:00
LogCod INT NOT NULL ,
PrnCod INT NOT NULL ,
SessionId CHAR ( 43 ) NOT NULL ,
UNIQUE INDEX ( LogCod ) ,
UNIQUE INDEX ( PrnCod , LogCod ) ) ;
--
2021-03-24 13:36:04 +01:00
-- Table exa_log_user_agents: stores the user agent fields for access log to exam prints
2020-05-24 15:42:51 +02:00
--
2021-03-24 13:36:04 +01:00
CREATE TABLE IF NOT EXISTS exa_log_user_agents (
2020-05-24 15:42:51 +02:00
LogCod INT NOT NULL ,
PrnCod INT NOT NULL ,
UserAgent TEXT NOT NULL ,
UNIQUE INDEX ( LogCod ) ,
UNIQUE INDEX ( PrnCod , LogCod ) ) ;
--
2020-05-09 01:37:00 +02:00
-- Table exa_print_questions: stores the questions and answers in exam prints made by users
--
CREATE TABLE IF NOT EXISTS exa_print_questions (
PrnCod INT NOT NULL ,
QstCod INT NOT NULL ,
QstInd INT NOT NULL ,
2020-05-09 21:07:50 +02:00
SetCod INT NOT NULL ,
2020-05-09 01:37:00 +02:00
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
Indexes TEXT NOT NULL ,
Answers TEXT NOT NULL ,
UNIQUE INDEX ( PrnCod , QstCod ) ) ;
--
2021-03-24 13:36:04 +01:00
-- Table exa_prints: stores the exam prints of every exam session
2020-05-09 01:37:00 +02:00
--
CREATE TABLE IF NOT EXISTS exa_prints (
PrnCod INT NOT NULL AUTO_INCREMENT ,
2020-05-17 02:28:30 +02:00
SesCod INT NOT NULL ,
2020-05-09 01:37:00 +02:00
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
NumQsts INT NOT NULL DEFAULT 0 ,
NumQstsNotBlank INT NOT NULL DEFAULT 0 ,
Sent ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( PrnCod ) ,
2020-05-17 02:28:30 +02:00
UNIQUE INDEX ( SesCod , UsrCod ) ) ;
2020-05-09 01:37:00 +02:00
--
2021-03-24 13:36:04 +01:00
-- Table exa_sessions: stores the exam sessions
--
CREATE TABLE IF NOT EXISTS exa_sessions (
SesCod INT NOT NULL AUTO_INCREMENT ,
ExaCod INT NOT NULL ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
Title VARCHAR ( 2047 ) NOT NULL ,
UNIQUE INDEX ( SesCod ) ,
INDEX ( ExaCod ) ) ;
--
2020-05-13 00:28:32 +02:00
-- Table exa_set_answers: stores the answers of questions in exam sets
--
CREATE TABLE IF NOT EXISTS exa_set_answers (
QstCod INT NOT NULL ,
AnsInd TINYINT NOT NULL ,
Answer TEXT NOT NULL ,
Feedback TEXT NOT NULL ,
MedCod INT NOT NULL DEFAULT - 1 ,
Correct ENUM ( ' N ' , ' Y ' ) NOT NULL ,
UNIQUE INDEX ( QstCod , AnsInd ) ,
INDEX ( MedCod ) ) ;
--
-- Table exa_set_questions: stores the questions in exam sets
--
CREATE TABLE IF NOT EXISTS exa_set_questions (
QstCod INT NOT NULL AUTO_INCREMENT ,
SetCod INT NOT NULL ,
AnsType ENUM ( ' int ' , ' float ' , ' true_false ' , ' unique_choice ' , ' multiple_choice ' , ' text ' ) NOT NULL ,
Shuffle ENUM ( ' N ' , ' Y ' ) NOT NULL ,
Stem TEXT NOT NULL ,
Feedback TEXT NOT NULL ,
MedCod INT NOT NULL DEFAULT - 1 ,
UNIQUE INDEX ( QstCod ) ,
UNIQUE INDEX ( SetCod , QstCod ) ,
INDEX ( MedCod ) ) ;
--
2020-04-24 02:49:51 +02:00
-- Table exa_sets: stores the question sets in the exams
--
CREATE TABLE IF NOT EXISTS exa_sets (
SetCod INT NOT NULL AUTO_INCREMENT ,
ExaCod INT NOT NULL ,
2020-04-27 00:25:02 +02:00
SetInd INT NOT NULL ,
2020-05-07 12:56:47 +02:00
NumQstsToPrint INT NOT NULL DEFAULT 0 ,
2020-04-25 01:36:53 +02:00
Title VARCHAR ( 2047 ) NOT NULL ,
2020-04-24 02:49:51 +02:00
UNIQUE INDEX ( SetCod ) ,
2020-04-27 00:25:02 +02:00
UNIQUE INDEX ( ExaCod , SetInd ) ) ;
2020-04-24 02:49:51 +02:00
--
2021-03-18 09:39:32 +01:00
-- Table fig_figures: stores cached figures for quick retrieval of figures (i.e. number of students in the platform)
2020-05-01 19:15:59 +02:00
--
2021-03-18 09:39:32 +01:00
CREATE TABLE IF NOT EXISTS fig_figures (
2020-05-01 19:15:59 +02:00
Figure INT NOT NULL ,
Scope ENUM ( ' Sys ' , ' Cty ' , ' Ins ' , ' Ctr ' , ' Deg ' , ' Crs ' ) NOT NULL DEFAULT ' Sys ' ,
Cod INT NOT NULL DEFAULT - 1 ,
2020-05-01 22:56:02 +02:00
ValueInt INT NOT NULL DEFAULT 0 ,
ValueDouble DOUBLE PRECISION NOT NULL DEFAULT 0 . 0 ,
2020-05-01 19:15:59 +02:00
LastUpdate TIMESTAMP ,
UNIQUE INDEX ( Figure , Scope , Cod ) ) ;
--
2021-03-18 15:19:32 +01:00
-- Table fir_banned: stores the banned IPs in order to mitigate denial of service attacks
2019-02-13 13:32:11 +01:00
--
2021-03-18 15:19:32 +01:00
CREATE TABLE IF NOT EXISTS fir_banned (
2019-02-13 15:06:02 +01:00
IP CHAR ( 15 ) NOT NULL ,
BanTime DATETIME NOT NULL ,
UnbanTime DATETIME NOT NULL ,
INDEX ( IP , UnbanTime ) ,
INDEX ( BanTime ) ,
INDEX ( UnbanTime ) ) ;
--
2021-03-18 15:19:32 +01:00
-- Table fir_log: stores the most recent IPs in order to mitigate denial of service attacks
2019-02-13 15:06:02 +01:00
--
2021-03-18 15:19:32 +01:00
CREATE TABLE IF NOT EXISTS fir_log (
2019-02-13 13:32:11 +01:00
ClickTime DATETIME NOT NULL ,
IP CHAR ( 15 ) NOT NULL ,
2023-04-06 13:02:45 +02:00
UsrCod INT NOT NULL DEFAULT - 1 ,
2019-02-13 13:32:11 +01:00
INDEX ( ClickTime ) ,
2023-04-06 13:02:45 +02:00
INDEX ( IP ) ,
INDEX ( UsrCod ) ) ;
2019-02-13 13:32:11 +01:00
--
2021-03-18 20:22:32 +01:00
-- Table for_clipboards: stores the clipboards used to move threads from one forum to another
2014-12-01 23:55:08 +01:00
--
2021-03-18 20:22:32 +01:00
CREATE TABLE IF NOT EXISTS for_clipboards (
ThrCod INT NOT NULL ,
UsrCod INT NOT NULL ,
TimeInsert TIMESTAMP NOT NULL ,
UNIQUE INDEX ( ThrCod ) ,
UNIQUE INDEX ( UsrCod ) ) ;
--
-- Table for_disabled: stores the forum posts that have been disabled
--
CREATE TABLE IF NOT EXISTS for_disabled (
2014-12-01 23:55:08 +01:00
PstCod INT NOT NULL ,
UsrCod INT NOT NULL ,
DisableTime DATETIME NOT NULL ,
UNIQUE INDEX ( PstCod ) ) ;
--
2021-03-18 15:49:38 +01:00
-- Table for_posts: stores the forum posts
2014-12-01 23:55:08 +01:00
--
2021-03-18 15:49:38 +01:00
CREATE TABLE IF NOT EXISTS ffor_posts (
2014-12-01 23:55:08 +01:00
PstCod INT NOT NULL AUTO_INCREMENT ,
ThrCod INT NOT NULL ,
UsrCod INT NOT NULL ,
CreatTime DATETIME NOT NULL ,
ModifTime DATETIME NOT NULL ,
NumNotif INT NOT NULL DEFAULT 0 ,
Subject TEXT NOT NULL ,
Content LONGTEXT NOT NULL ,
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( PstCod ) ,
INDEX ( ThrCod ) ,
INDEX ( UsrCod ) ,
INDEX ( CreatTime ) ,
2019-03-19 01:41:27 +01:00
INDEX ( ModifTime ) ,
INDEX ( MedCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-18 20:22:32 +01:00
-- Table for_read: stores the threads read by each user
2014-12-01 23:55:08 +01:00
--
2021-03-18 20:22:32 +01:00
CREATE TABLE IF NOT EXISTS for_read (
2014-12-01 23:55:08 +01:00
ThrCod INT NOT NULL ,
UsrCod INT NOT NULL ,
ReadTime DATETIME NOT NULL ,
UNIQUE INDEX ( ThrCod , UsrCod ) ) ;
--
2021-03-18 19:47:03 +01:00
-- Table for_threads: stores the forum threads
2014-12-01 23:55:08 +01:00
--
2021-03-18 19:47:03 +01:00
CREATE TABLE IF NOT EXISTS for_threads (
2014-12-01 23:55:08 +01:00
ThrCod INT NOT NULL AUTO_INCREMENT ,
ForumType TINYINT NOT NULL ,
2023-04-06 13:02:45 +02:00
HieCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
FirstPstCod INT NOT NULL ,
LastPstCod INT NOT NULL ,
UNIQUE INDEX ( ThrCod ) ,
INDEX ( ForumType ) ,
2023-04-06 13:02:45 +02:00
INDEX ( HieCod ) ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( FirstPstCod ) ,
UNIQUE INDEX ( LastPstCod ) ) ;
--
2019-09-17 01:37:07 +02:00
-- Table gam_games: stores the games
2019-05-20 12:26:15 +02:00
--
2019-09-17 01:37:07 +02:00
CREATE TABLE IF NOT EXISTS gam_games (
2019-05-20 12:26:15 +02:00
GamCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UsrCod INT NOT NULL ,
2019-11-27 22:03:25 +01:00
MaxGrade DOUBLE PRECISION NOT NULL DEFAULT 1 ,
2020-02-19 21:54:23 +01:00
Visibility INT NOT NULL DEFAULT 0 x1f ,
2019-05-20 12:26:15 +02:00
Title VARCHAR ( 2047 ) NOT NULL ,
Txt TEXT NOT NULL ,
UNIQUE INDEX ( GamCod ) ,
INDEX ( CrsCod ) ) ;
--
2017-07-09 20:31:11 +02:00
-- Table gam_questions: stores the questions in the games
--
CREATE TABLE IF NOT EXISTS gam_questions (
GamCod INT NOT NULL ,
2020-04-27 00:25:02 +02:00
QstInd INT NOT NULL ,
2020-04-27 00:06:58 +02:00
QstCod INT NOT NULL ,
UNIQUE INDEX ( GamCod , QstInd ) ,
UNIQUE INDEX ( GamCod , QstCod ) ) ;
2017-07-09 20:31:11 +02:00
--
2021-03-19 00:27:46 +01:00
-- Table hld_holidays: stores the holidays in each institution
2014-12-01 23:55:08 +01:00
--
2021-03-19 00:27:46 +01:00
CREATE TABLE IF NOT EXISTS hld_holidays (
2014-12-01 23:55:08 +01:00
HldCod INT NOT NULL AUTO_INCREMENT ,
InsCod INT NOT NULL ,
PlcCod INT NOT NULL DEFAULT - 1 ,
HldTyp TINYINT NOT NULL ,
StartDate DATE NOT NULL ,
EndDate DATE NOT NULL ,
2017-03-12 16:39:16 +01:00
Name VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( HldCod ) ,
INDEX ( InsCod ) ,
INDEX ( PlcCod ) ) ;
--
-- Table institutions: stores the institutions (for example, universities)
--
CREATE TABLE IF NOT EXISTS institutions (
InsCod INT NOT NULL AUTO_INCREMENT ,
CtyCod INT NOT NULL ,
Status TINYINT NOT NULL DEFAULT 0 ,
RequesterUsrCod INT NOT NULL DEFAULT - 1 ,
2017-03-12 19:43:17 +01:00
ShortName VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL ,
FullName VARCHAR ( 2047 ) COLLATE latin1_spanish_ci NOT NULL ,
2014-12-01 23:55:08 +01:00
WWW VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( InsCod ) ,
INDEX ( CtyCod ) ,
INDEX ( Status ) ) ;
--
2021-03-19 00:48:18 +01:00
-- Table lnk_links: stores the global institutional links shown on right part of page
2014-12-01 23:55:08 +01:00
--
2021-03-19 00:48:18 +01:00
CREATE TABLE IF NOT EXISTS lnk_links (
2014-12-01 23:55:08 +01:00
LnkCod INT NOT NULL AUTO_INCREMENT ,
2017-03-12 19:54:12 +01:00
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
WWW VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( LnkCod ) ) ;
--
-- Table log: stores the log of all clicks
--
2020-04-05 18:32:56 +02:00
CREATE TABLE IF NOT EXISTS log (
2014-12-01 23:55:08 +01:00
LogCod INT NOT NULL AUTO_INCREMENT ,
ActCod INT NOT NULL DEFAULT - 1 ,
2015-10-10 22:16:46 +02:00
CtyCod INT NOT NULL DEFAULT - 1 ,
InsCod INT NOT NULL DEFAULT - 1 ,
CtrCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
DegCod INT NOT NULL DEFAULT - 1 ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL DEFAULT - 1 ,
Role TINYINT NOT NULL ,
ClickTime DATETIME NOT NULL ,
TimeToGenerate INT NOT NULL ,
TimeToSend INT NOT NULL ,
IP CHAR ( 15 ) NOT NULL ,
2020-04-05 18:32:56 +02:00
PRIMARY KEY ( LogCod , ClickTime ) ,
2014-12-01 23:55:08 +01:00
INDEX ( ActCod ) ,
2015-10-10 22:16:46 +02:00
INDEX ( CtyCod ) ,
INDEX ( InsCod ) ,
INDEX ( CtrCod ) ,
2014-12-01 23:55:08 +01:00
INDEX ( DegCod ) ,
INDEX ( CrsCod ) ,
INDEX ( UsrCod ) ,
2020-04-05 18:32:56 +02:00
INDEX ( ClickTime , Role )
) ENGINE = InnoDB
PARTITION BY RANGE ( YEAR ( ClickTime ) )
(
PARTITION p2004 VALUES LESS THAN ( 2005 ) ,
PARTITION p2005 VALUES LESS THAN ( 2006 ) ,
PARTITION p2006 VALUES LESS THAN ( 2007 ) ,
PARTITION p2007 VALUES LESS THAN ( 2008 ) ,
PARTITION p2008 VALUES LESS THAN ( 2009 ) ,
PARTITION p2009 VALUES LESS THAN ( 2010 ) ,
PARTITION p2010 VALUES LESS THAN ( 2011 ) ,
PARTITION p2011 VALUES LESS THAN ( 2012 ) ,
PARTITION p2012 VALUES LESS THAN ( 2013 ) ,
PARTITION p2013 VALUES LESS THAN ( 2014 ) ,
PARTITION p2014 VALUES LESS THAN ( 2015 ) ,
PARTITION p2015 VALUES LESS THAN ( 2016 ) ,
PARTITION p2016 VALUES LESS THAN ( 2017 ) ,
PARTITION p2017 VALUES LESS THAN ( 2018 ) ,
PARTITION p2018 VALUES LESS THAN ( 2019 ) ,
PARTITION p2019 VALUES LESS THAN ( 2020 ) ,
PARTITION p2020 VALUES LESS THAN ( 2021 ) ,
PARTITION p2021 VALUES LESS THAN ( 2022 ) ,
PARTITION p2022 VALUES LESS THAN ( 2023 ) ,
PARTITION p2023 VALUES LESS THAN ( 2024 ) ,
PARTITION p2024 VALUES LESS THAN ( 2025 ) ,
PARTITION p2025 VALUES LESS THAN ( 2026 ) ,
PARTITION p2026 VALUES LESS THAN ( 2027 ) ,
PARTITION p2027 VALUES LESS THAN ( 2028 ) ,
PARTITION p2028 VALUES LESS THAN ( 2029 ) ,
PARTITION p2029 VALUES LESS THAN ( 2030 ) ,
PARTITION p2030 VALUES LESS THAN ( 2031 ) ,
PARTITION p2031 VALUES LESS THAN ( 2032 ) ,
PARTITION p2032 VALUES LESS THAN ( 2033 ) ,
PARTITION p2033 VALUES LESS THAN ( 2034 ) ,
PARTITION p2034 VALUES LESS THAN ( 2035 ) ,
PARTITION p2035 VALUES LESS THAN ( 2036 ) ,
PARTITION p2036 VALUES LESS THAN ( 2037 ) ,
PARTITION p2037 VALUES LESS THAN ( 2038 ) ,
PARTITION p2038 VALUES LESS THAN ( 2039 ) ,
PARTITION p2039 VALUES LESS THAN ( 2040 ) ,
PARTITION p2040 VALUES LESS THAN ( 2041 ) ,
PARTITION p2041 VALUES LESS THAN ( 2042 ) ,
PARTITION p2042 VALUES LESS THAN ( 2043 ) ,
PARTITION p2043 VALUES LESS THAN ( 2044 ) ,
PARTITION p2044 VALUES LESS THAN ( 2045 ) ,
PARTITION p2045 VALUES LESS THAN ( 2046 ) ,
PARTITION p2046 VALUES LESS THAN ( 2047 ) ,
PARTITION p2047 VALUES LESS THAN ( 2048 ) ,
PARTITION p2048 VALUES LESS THAN ( 2049 ) ,
PARTITION p2049 VALUES LESS THAN ( 2050 ) ,
PARTITION p2050 VALUES LESS THAN MAXVALUE
) ;
--
2021-03-24 13:51:21 +01:00
-- Table log_api: stores the log of calls to API (web service) from plugins
--
CREATE TABLE IF NOT EXISTS log_api (
LogCod INT NOT NULL ,
PlgCod INT NOT NULL ,
FunCod INT NOT NULL ,
UNIQUE INDEX ( LogCod ) ,
INDEX ( PlgCod ) ,
INDEX ( FunCod ) ) ;
--
2020-04-05 18:32:56 +02:00
-- Table log_banners: stores the log of clicked banners
--
CREATE TABLE IF NOT EXISTS log_banners (
LogCod INT NOT NULL ,
BanCod INT NOT NULL ,
UNIQUE INDEX ( LogCod ) , INDEX ( BanCod ) ) ;
--
-- Table log_comments: stores the comments about errors associated to the log
--
CREATE TABLE IF NOT EXISTS log_comments (
LogCod INT NOT NULL ,
Comments TEXT NOT NULL ,
UNIQUE INDEX ( LogCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table log_recent: stores the log of the most recent clicks, used to speed up queries related to log
--
CREATE TABLE IF NOT EXISTS log_recent (
LogCod INT NOT NULL ,
ActCod INT NOT NULL DEFAULT - 1 ,
2015-10-10 22:16:46 +02:00
CtyCod INT NOT NULL DEFAULT - 1 ,
InsCod INT NOT NULL DEFAULT - 1 ,
CtrCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
DegCod INT NOT NULL DEFAULT - 1 ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL DEFAULT - 1 ,
Role TINYINT NOT NULL ,
ClickTime DATETIME NOT NULL ,
TimeToGenerate INT NOT NULL ,
TimeToSend INT NOT NULL ,
IP CHAR ( 15 ) NOT NULL ,
UNIQUE INDEX ( LogCod ) ,
INDEX ( ActCod ) ,
2015-10-10 22:16:46 +02:00
INDEX ( CtyCod ) ,
INDEX ( InsCod ) ,
INDEX ( CtrCod ) ,
2014-12-01 23:55:08 +01:00
INDEX ( DegCod ) ,
INDEX ( CrsCod ) ,
INDEX ( UsrCod ) ,
INDEX ( ClickTime , Role ) ) ;
--
2017-02-27 19:52:04 +01:00
-- Table log_search: stores the log of search strings
--
CREATE TABLE IF NOT EXISTS log_search (
LogCod INT NOT NULL ,
2017-03-12 21:15:32 +01:00
SearchStr VARCHAR ( 2047 ) NOT NULL ,
2017-02-27 19:52:04 +01:00
UNIQUE INDEX ( LogCod ) ) ;
--
2021-03-25 23:32:23 +01:00
-- Table mch_answers: stores the users' answers to the matches
2014-12-01 23:55:08 +01:00
--
2021-03-25 23:32:23 +01:00
CREATE TABLE IF NOT EXISTS mch_answers (
MchCod INT NOT NULL ,
UsrCod INT NOT NULL ,
QstInd INT NOT NULL ,
NumOpt TINYINT NOT NULL ,
AnsInd TINYINT NOT NULL ,
UNIQUE INDEX ( MchCod , UsrCod , QstInd ) ) ;
--
-- Table mch_indexes: stores the order of answers in a match
--
CREATE TABLE IF NOT EXISTS mch_indexes (
MchCod INT NOT NULL ,
QstInd INT NOT NULL ,
Indexes TEXT NOT NULL ,
UNIQUE INDEX ( MchCod , QstInd ) ) ;
--
-- Table mch_matches: stores the matches (games instances) already played
--
CREATE TABLE IF NOT EXISTS mch_matches (
MchCod INT NOT NULL AUTO_INCREMENT ,
GamCod INT NOT NULL ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
Title VARCHAR ( 2047 ) NOT NULL ,
QstInd INT NOT NULL DEFAULT 0 ,
QstCod INT NOT NULL DEFAULT - 1 ,
Showing ENUM ( ' start ' , ' stem ' , ' answers ' , ' results ' , ' end ' ) NOT NULL DEFAULT ' start ' ,
Countdown INT NOT NULL DEFAULT - 1 ,
NumCols INT NOT NULL DEFAULT 1 ,
ShowQstResults ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
ShowUsrResults ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( MchCod ) ,
INDEX ( GamCod ) ) ;
--
-- Table mch_players: stores the current match players
--
CREATE TABLE IF NOT EXISTS mch_players (
MchCod INT NOT NULL ,
UsrCod INT NOT NULL ,
TS TIMESTAMP ,
UNIQUE INDEX ( MchCod , UsrCod ) ) ;
--
-- Table mch_playing: stores the current matches being played
--
CREATE TABLE IF NOT EXISTS mch_playing (
MchCod INT NOT NULL ,
TS TIMESTAMP ,
UNIQUE INDEX ( MchCod ) ) ;
--
-- Table mch_results: stores match results
--
CREATE TABLE IF NOT EXISTS mch_results (
MchCod INT NOT NULL ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
NumQsts INT NOT NULL DEFAULT 0 ,
NumQstsNotBlank INT NOT NULL DEFAULT 0 ,
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( MchCod , UsrCod ) ) ;
--
-- Table mch_times: stores the elapsed time in every question in every match played
--
CREATE TABLE IF NOT EXISTS mch_times (
MchCod INT NOT NULL ,
QstInd INT NOT NULL ,
ElapsedTime TIME NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( MchCod , QstInd ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-19 09:06:18 +01:00
-- Table med_media: stores information about media (images, videos, YouTube)
2019-03-19 01:41:27 +01:00
--
2021-03-19 09:06:18 +01:00
CREATE TABLE IF NOT EXISTS med_media (
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL AUTO_INCREMENT ,
2019-03-21 20:04:01 +01:00
Type ENUM ( ' none ' , ' jpg ' , ' gif ' , ' mp4 ' , ' webm ' , ' ogg ' , ' youtube ' , ' embed ' ) NOT NULL DEFAULT ' none ' ,
2019-03-19 01:41:27 +01:00
Name VARCHAR ( 43 ) NOT NULL DEFAULT ' ' ,
URL VARCHAR ( 255 ) NOT NULL DEFAULT ' ' ,
Title VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
UNIQUE INDEX ( MedCod ) ,
INDEX ( Type ) ) ;
--
2021-03-20 14:14:03 +01:00
-- Table mrk_marks: stores information about files of marks
--
CREATE TABLE IF NOT EXISTS mrk_marks (
FilCod INT NOT NULL AUTO_INCREMENT ,
Header INT NOT NULL ,
Footer INT NOT NULL ,
UNIQUE INDEX ( FilCod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table msg_banned: stores the users whose messages are banned (FromUsrCod is a recipien banned from ToUsrCod)
--
CREATE TABLE IF NOT EXISTS msg_banned (
FromUsrCod INT NOT NULL ,
ToUsrCod INT NOT NULL ,
UNIQUE INDEX ( FromUsrCod , ToUsrCod ) ) ;
--
-- Table msg_content: stores the content of the sent messages
--
CREATE TABLE IF NOT EXISTS msg_content (
MsgCod INT NOT NULL AUTO_INCREMENT ,
Subject TEXT NOT NULL ,
Content LONGTEXT NOT NULL ,
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( MsgCod ) ,
2019-03-19 01:41:27 +01:00
FULLTEXT ( Subject , Content ) ,
INDEX ( MedCod ) ) ENGINE = MYISAM ;
2014-12-01 23:55:08 +01:00
--
-- Table msg_content_deleted: stores the content of the sent messages that have been deleted
--
CREATE TABLE IF NOT EXISTS msg_content_deleted (
MsgCod INT NOT NULL ,
Subject TEXT NOT NULL ,
Content LONGTEXT NOT NULL ,
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( MsgCod ) ,
2019-03-19 01:41:27 +01:00
FULLTEXT ( Subject , Content ) ,
INDEX ( MedCod ) ) ENGINE = MYISAM ;
2014-12-01 23:55:08 +01:00
--
-- Table msg_rcv: stores the received messages
--
CREATE TABLE IF NOT EXISTS msg_rcv (
MsgCod INT NOT NULL ,
UsrCod INT NOT NULL ,
Notified ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Open ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Replied ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Expanded ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( UsrCod , MsgCod ) ,
INDEX ( MsgCod ) ,
INDEX ( Notified ) ) ;
--
-- Table msg_rcv_deleted: stores the received messages that have been deleted
--
CREATE TABLE IF NOT EXISTS msg_rcv_deleted (
MsgCod INT NOT NULL ,
UsrCod INT NOT NULL ,
Notified ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Open ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
Replied ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( UsrCod , MsgCod ) ,
INDEX ( MsgCod ) ,
INDEX ( Notified ) ) ;
--
-- Table msg_snt: stores the sent messages
--
CREATE TABLE IF NOT EXISTS msg_snt (
MsgCod INT NOT NULL ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
Expanded ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
CreatTime DATETIME NOT NULL ,
UNIQUE INDEX ( MsgCod ) ,
INDEX ( CrsCod ) ,
INDEX ( UsrCod ) ) ;
--
-- Table msg_snt_deleted: stores the sent messages that have been deleted
--
CREATE TABLE IF NOT EXISTS msg_snt_deleted (
MsgCod INT NOT NULL ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
CreatTime DATETIME NOT NULL ,
UNIQUE INDEX ( MsgCod ) ,
INDEX ( CrsCod ) ,
INDEX ( UsrCod ) ) ;
--
2021-03-19 12:21:20 +01:00
-- Table not_deleted: stores the yellow notes (post-it) that have been deleted
2014-12-01 23:55:08 +01:00
--
2021-03-19 12:21:20 +01:00
CREATE TABLE IF NOT EXISTS not_deleted (
NotCod INT NOT NULL ,
2014-12-01 23:55:08 +01:00
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
CreatTime DATETIME NOT NULL ,
Content TEXT NOT NULL ,
NumNotif INT NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( NotCod ) ,
2021-03-19 12:21:20 +01:00
INDEX ( CrsCod ) ,
2014-12-01 23:55:08 +01:00
INDEX ( UsrCod ) ,
2021-03-19 12:21:20 +01:00
INDEX ( CreatTime ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-19 12:21:20 +01:00
-- Table not_notices: stores the yellow notes (post-it)
2014-12-01 23:55:08 +01:00
--
2021-03-19 12:21:20 +01:00
CREATE TABLE IF NOT EXISTS not_notices (
NotCod INT NOT NULL AUTO_INCREMENT ,
2014-12-01 23:55:08 +01:00
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
CreatTime DATETIME NOT NULL ,
Content TEXT NOT NULL ,
2021-03-19 12:21:20 +01:00
Status TINYINT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
NumNotif INT NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( NotCod ) ,
2021-03-19 12:21:20 +01:00
INDEX ( CrsCod , Status ) ,
2014-12-01 23:55:08 +01:00
INDEX ( UsrCod ) ,
2021-03-19 12:21:20 +01:00
INDEX ( CreatTime ) ,
INDEX ( Status ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-25 23:32:23 +01:00
-- Table ntf_mail_domains: stores e-mail domains to which sending of notifications is allowed
--
CREATE TABLE IF NOT EXISTS ntf_mail_domains (
MaiCod INT NOT NULL AUTO_INCREMENT ,
Domain VARCHAR ( 255 ) NOT NULL ,
Info VARCHAR ( 2047 ) NOT NULL ,
UNIQUE INDEX ( MaiCod ) ,
UNIQUE INDEX ( Domain ) ) ;
--
2021-03-19 00:48:18 +01:00
-- Table ntf_notifications: stores the notifications of events
2014-12-01 23:55:08 +01:00
--
2021-03-19 00:48:18 +01:00
CREATE TABLE IF NOT EXISTS ntf_notifications (
2014-12-01 23:55:08 +01:00
NtfCod INT NOT NULL AUTO_INCREMENT ,
NotifyEvent TINYINT NOT NULL ,
ToUsrCod INT NOT NULL ,
FromUsrCod INT NOT NULL ,
InsCod INT NOT NULL DEFAULT - 1 ,
CtrCod INT NOT NULL DEFAULT - 1 ,
DegCod INT NOT NULL DEFAULT - 1 ,
CrsCod INT NOT NULL DEFAULT - 1 ,
Cod INT NOT NULL DEFAULT - 1 ,
TimeNotif DATETIME NOT NULL ,
Status TINYINT NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( NtfCod ) ,
INDEX ( NotifyEvent ) ,
INDEX ( ToUsrCod ) ,
INDEX ( TimeNotif ) ) ;
--
2021-03-17 13:37:45 +01:00
-- Table pho_clicks_without_photo: stores the number of clicks that remains to each user before being required to submit his/her photo
--
CREATE TABLE IF NOT EXISTS pho_clicks_without_photo (
UsrCod INT NOT NULL ,
NumClicks INT NOT NULL ,
UNIQUE INDEX ( UsrCod ) ) ;
--
2021-03-19 21:13:47 +01:00
-- Table plc_places: stores the places associated to each institution, used in holidays
2014-12-01 23:55:08 +01:00
--
2021-03-19 21:13:47 +01:00
CREATE TABLE IF NOT EXISTS plc_places (
2014-12-01 23:55:08 +01:00
PlcCod INT NOT NULL AUTO_INCREMENT ,
InsCod INT NOT NULL ,
2017-03-13 13:33:45 +01:00
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( PlcCod ) ,
INDEX ( InsCod ) ) ;
--
2021-03-20 12:21:29 +01:00
-- Table plg_plugins: stores the plugins
2014-12-01 23:55:08 +01:00
--
2021-03-20 12:21:29 +01:00
CREATE TABLE IF NOT EXISTS plg_plugins (
2014-12-01 23:55:08 +01:00
PlgCod INT NOT NULL AUTO_INCREMENT ,
2017-03-13 13:43:37 +01:00
Name VARCHAR ( 511 ) NOT NULL ,
Description VARCHAR ( 2047 ) NOT NULL ,
Logo VARCHAR ( 31 ) NOT NULL ,
AppKey VARCHAR ( 31 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
URL VARCHAR ( 255 ) NOT NULL ,
IP CHAR ( 15 ) NOT NULL ,
UNIQUE INDEX ( PlgCod ) ) ;
--
2023-04-06 13:02:45 +02:00
-- Table prg_expanded: stores the items of the course program currently expanded for each user
--
CREATE TABLE IF NOT EXISTS prg_expanded (
UsrCod INT NOT NULL ,
ItmCod INT NOT NULL ,
ClickTime DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod , ItmCod ) ,
INDEX ( ItmCod ) ,
INDEX ( ClickTime ) ) ;
--
2020-02-20 23:48:48 +01:00
-- Table prg_items: stores the items of the course program
--
CREATE TABLE IF NOT EXISTS prg_items (
2020-02-26 00:26:07 +01:00
ItmCod INT NOT NULL AUTO_INCREMENT ,
2020-02-27 23:44:21 +01:00
CrsCod INT NOT NULL DEFAULT - 1 ,
2020-02-26 00:26:07 +01:00
ItmInd INT NOT NULL DEFAULT 0 ,
2020-02-27 00:19:55 +01:00
Level INT NOT NULL DEFAULT 1 ,
2020-02-20 23:48:48 +01:00
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
Title VARCHAR ( 2047 ) NOT NULL ,
Txt TEXT NOT NULL ,
2020-02-26 00:26:07 +01:00
UNIQUE INDEX ( ItmCod ) ,
2020-02-27 23:44:21 +01:00
UNIQUE INDEX ( CrsCod , ItmInd ) ) ;
2020-02-20 23:48:48 +01:00
--
2022-07-12 14:42:10 +02:00
-- Table prg_resources: stores the resources of the course program
--
CREATE TABLE IF NOT EXISTS prg_resources (
RscCod INT NOT NULL AUTO_INCREMENT ,
ItmCod INT NOT NULL DEFAULT - 1 ,
RscInd INT NOT NULL DEFAULT 0 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2023-04-06 13:02:45 +02:00
Type ENUM ( ' non ' , ' asg ' , ' prj ' , ' cfe ' , ' exa ' , ' gam ' , ' rub ' , ' doc ' , ' mrk ' , ' att ' , ' for ' , ' svy ' ) NOT NULL DEFAULT ' non ' ,
2022-07-12 14:42:10 +02:00
Title VARCHAR ( 2047 ) NOT NULL ,
UNIQUE INDEX ( RscCod ) ,
UNIQUE INDEX ( ItmCod , RscInd ) ) ;
--
2019-10-25 22:48:34 +02:00
-- Table prj_config: stores the configuration of projects for each course
--
CREATE TABLE IF NOT EXISTS prj_config (
CrsCod INT NOT NULL DEFAULT - 1 ,
2023-04-13 14:25:52 +02:00
NETCanCreate ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' Y ' ,
2019-10-25 22:48:34 +02:00
UNIQUE INDEX ( CrsCod ) ) ;
--
2021-03-19 01:23:17 +01:00
-- Table prj_projects: stores the projects proposed by the teachers to their students
2017-09-17 16:58:09 +02:00
--
2021-03-19 01:23:17 +01:00
CREATE TABLE IF NOT EXISTS prj_projects (
2017-09-17 16:58:09 +02:00
PrjCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
2017-09-21 20:48:42 +02:00
DptCod INT NOT NULL DEFAULT - 1 ,
2023-04-06 13:02:45 +02:00
Locked ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2017-09-17 16:58:09 +02:00
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2019-10-25 22:48:34 +02:00
Assigned ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2017-10-02 02:19:14 +02:00
NumStds INT NOT NULL DEFAULT 1 ,
2017-10-02 19:34:31 +02:00
Proposal ENUM ( ' new ' , ' modified ' , ' unmodified ' ) NOT NULL DEFAULT ' new ' ,
2017-10-07 22:08:38 +02:00
CreatTime DATETIME NOT NULL ,
ModifTime DATETIME NOT NULL ,
2023-04-06 13:02:45 +02:00
Title VARCHAR ( 4095 ) NOT NULL ,
2017-09-19 01:12:05 +02:00
Description TEXT NOT NULL ,
Knowledge TEXT NOT NULL ,
Materials TEXT NOT NULL ,
2017-09-18 01:06:51 +02:00
URL VARCHAR ( 255 ) NOT NULL ,
2023-04-06 13:02:45 +02:00
ReviewStatus ENUM ( ' unreviewed ' , ' unapproved ' , ' approved ' ) NOT NULL DEFAULT ' unreviewed ' ,
ReviewTime DATETIME NOT NULL DEFAULT ' 1970-01-01 01:00:00 ' ,
ReviewTxt TEXT NOT NULL ,
2017-09-17 16:58:09 +02:00
UNIQUE INDEX ( PrjCod ) ,
2017-09-21 20:48:42 +02:00
INDEX ( CrsCod , Hidden ) ,
2017-10-07 22:08:38 +02:00
INDEX ( CrsCod , CreatTime ) ,
INDEX ( CrsCod , ModifTime ) ,
2023-04-06 13:02:45 +02:00
INDEX ( CrsCod , DptCod ) ,
INDEX ( CrsCod , ReviewStatus ) ) ;
2017-09-17 16:58:09 +02:00
--
2023-05-03 11:02:06 +02:00
-- Table prj_rubrics: stores the rubrics for each project
--
CREATE TABLE IF NOT EXISTS prj_rubrics (
CrsCod INT NOT NULL ,
Type ENUM ( ' tut ' , ' evl ' , ' gbl ' ) NOT NULL ,
RubCod INT NOT NULL ,
UNIQUE INDEX ( CrsCod , Type , RubCod ) ) ;
--
2021-03-25 23:32:23 +01:00
-- Table prj_users: stores the users inside projects
2021-03-19 01:23:17 +01:00
--
2021-03-25 23:32:23 +01:00
CREATE TABLE IF NOT EXISTS prj_users (
2021-03-19 01:23:17 +01:00
PrjCod INT NOT NULL ,
RoleInProject TINYINT NOT NULL DEFAULT 0 ,
UsrCod INT NOT NULL ,
UNIQUE INDEX ( PrjCod , RoleInProject , UsrCod ) ) ;
--
2021-03-19 10:50:13 +01:00
-- Table roo_check_in: stores the history of locations of users
2020-05-25 20:56:51 +02:00
--
2021-03-19 10:50:13 +01:00
CREATE TABLE IF NOT EXISTS roo_check_in (
2020-05-25 20:56:51 +02:00
ChkCod INT NOT NULL AUTO_INCREMENT ,
UsrCod INT NOT NULL ,
RooCod INT NOT NULL ,
CheckInTime DATETIME NOT NULL ,
UNIQUE INDEX ( ChkCod ) ,
INDEX ( UsrCod , CheckInTime ) ,
INDEX ( CheckInTime ) ) ;
--
2021-03-26 00:11:15 +01:00
-- Table roo_macs: stores the associations between rooms and MAC addresses
--
CREATE TABLE IF NOT EXISTS roo_macs (
RooCod INT NOT NULL AUTO_INCREMENT ,
MAC BIGINT NOT NULL ,
UNIQUE INDEX ( RooCod , MAC ) ,
UNIQUE INDEX ( MAC , RooCod ) ) ;
--
2021-03-19 10:50:13 +01:00
-- Table roo_rooms: stores the rooms associated to each center
--
CREATE TABLE IF NOT EXISTS roo_rooms (
RooCod INT NOT NULL AUTO_INCREMENT ,
CtrCod INT NOT NULL ,
BldCod INT NOT NULL DEFAULT - 1 ,
Floor INT NOT NULL DEFAULT 0 ,
Type ENUM ( ' no_type ' , ' administration ' , ' auditorium ' , ' cafeteria ' , ' canteen ' , ' classroom ' , ' concierge ' , ' corridor ' , ' gym ' , ' hall ' , ' kindergarten ' , ' laboratory ' , ' library ' , ' office ' , ' outdoors ' , ' parking ' , ' pavilion ' , ' room ' , ' secretariat ' , ' seminar ' , ' shop ' , ' store ' , ' toilets ' , ' virtual ' , ' yard ' ) NOT NULL DEFAULT ' no_type ' ,
ShortName VARCHAR ( 511 ) NOT NULL ,
FullName VARCHAR ( 2047 ) NOT NULL ,
Capacity INT NOT NULL ,
UNIQUE INDEX ( RooCod ) ,
INDEX ( CtrCod , BldCod , Floor ) ) ;
--
2023-04-06 13:02:45 +02:00
-- Table rsc_clipboards: stores the clipboards for resources to be linked in program and rubrics
--
CREATE TABLE IF NOT EXISTS rsc_clipboards (
UsrCod INT NOT NULL ,
CrsCod INT NOT NULL ,
Type ENUM ( ' non ' , ' asg ' , ' prj ' , ' cfe ' , ' exa ' , ' gam ' , ' rub ' , ' doc ' , ' mrk ' , ' att ' , ' for ' , ' svy ' ) NOT NULL DEFAULT ' non ' ,
Cod INT NOT NULL DEFAULT - 1 ,
CopyTime TIMESTAMP ,
UNIQUE INDEX ( UsrCod , CrsCod , Type , Cod ) ,
INDEX ( CrsCod , Type , Cod ) ,
INDEX ( CopyTime ) ) ;
--
-- Table rub_criteria: stores the criteria associated to each rubric
--
CREATE TABLE IF NOT EXISTS rub_criteria (
CriCod INT NOT NULL AUTO_INCREMENT ,
RubCod INT NOT NULL ,
CriInd INT NOT NULL ,
Type ENUM ( ' non ' , ' asg ' , ' prj ' , ' cfe ' , ' exa ' , ' gam ' , ' rub ' , ' doc ' , ' mrk ' , ' att ' , ' for ' , ' svy ' ) ,
Cod INT NOT NULL DEFAULT - 1 ,
MinVal DOUBLE PRECISION NOT NULL DEFAULT 0 ,
MaxVal DOUBLE PRECISION NOT NULL DEFAULT 1 ,
Weight DOUBLE PRECISION NOT NULL DEFAULT 1 ,
Title VARCHAR ( 2047 ) NOT NULL ,
UNIQUE INDEX ( CriCod ) ,
UNIQUE INDEX ( RubCod , CriInd ) ) ;
--
-- Table rub_criteria: stores the assessment rubrics
--
CREATE TABLE IF NOT EXISTS rub_rubrics (
RubCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
Title VARCHAR ( 2047 ) NOT NULL ,
Txt TEXT NOT NULL ,
UNIQUE INDEX ( RubCod ) ,
INDEX ( CrsCod ) ) ;
--
2023-05-19 23:00:30 +02:00
-- Table rub_scores: stores the rubric criteria scores for each project
--
CREATE TABLE IF NOT EXISTS rub_scores (
Type ENUM ( ' non ' , ' asg ' , ' prj ' , ' cfe ' , ' exa ' , ' gam ' , ' rub ' , ' doc ' , ' mrk ' , ' att ' , ' for ' , ' svy ' ) NOT NULL DEFAULT ' non ' ,
Cod INT NOT NULL ,
UsrCod INT NOT NULL DEFAULT - 1 ,
CriCod INT NOT NULL ,
EvlCod INT NOT NULL DEFAULT - 1 ,
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( Type , Cod , UsrCod , CriCod ) ) ;
--
2021-03-18 20:38:40 +01:00
-- Table ses_params: stores some hidden parameters passed from a page to another using database instead of forms
--
CREATE TABLE IF NOT EXISTS ses_params (
SessionId CHAR ( 43 ) NOT NULL ,
ParamName VARCHAR ( 255 ) NOT NULL ,
ParamValue LONGTEXT NOT NULL ,
INDEX ( SessionId ) ) ;
--
2021-03-18 20:47:28 +01:00
-- Table ses_sessions: stores the information of open sessions
2014-12-01 23:55:08 +01:00
--
2021-03-18 20:47:28 +01:00
CREATE TABLE IF NOT EXISTS ses_sessions (
2014-12-01 23:55:08 +01:00
SessionId CHAR ( 43 ) NOT NULL ,
UsrCod INT NOT NULL ,
Password CHAR ( 86 ) COLLATE latin1_bin NOT NULL ,
Role TINYINT NOT NULL DEFAULT 0 ,
CtyCod INT NOT NULL DEFAULT - 1 ,
InsCod INT NOT NULL DEFAULT - 1 ,
CtrCod INT NOT NULL DEFAULT - 1 ,
DegCod INT NOT NULL DEFAULT - 1 ,
CrsCod INT NOT NULL DEFAULT - 1 ,
2016-04-30 17:16:41 +02:00
LastTime DATETIME NOT NULL ,
LastRefresh DATETIME NOT NULL ,
2016-01-10 16:57:02 +01:00
FirstPubCod BIGINT NOT NULL DEFAULT 0 ,
2016-01-10 03:10:40 +01:00
LastPubCod BIGINT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
LastPageMsgRcv INT NOT NULL DEFAULT 1 ,
LastPageMsgSnt INT NOT NULL DEFAULT 1 ,
WhatToSearch TINYINT NOT NULL DEFAULT 0 ,
2019-12-19 17:20:59 +01:00
SearchStr VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2014-12-01 23:55:08 +01:00
SideCols TINYINT NOT NULL DEFAULT 3 ,
UNIQUE INDEX ( SessionId ) ,
2019-12-18 20:55:56 +01:00
INDEX ( UsrCod ) ) ;
--
2021-03-24 10:22:08 +01:00
-- Table set_ip_settings: stores user's settings (preferences) for each IP address
--
CREATE TABLE IF NOT EXISTS set_ip_settings (
IP CHAR ( 15 ) NOT NULL ,
UsrCod INT NOT NULL DEFAULT - 1 ,
LastChange DATETIME NOT NULL ,
FirstDayOfWeek TINYINT NOT NULL DEFAULT 0 ,
DateFormat TINYINT NOT NULL DEFAULT 0 ,
Theme CHAR ( 16 ) NOT NULL ,
IconSet CHAR ( 16 ) NOT NULL ,
Menu TINYINT NOT NULL DEFAULT 0 ,
SideCols TINYINT NOT NULL ,
2021-12-02 08:39:18 +01:00
PhotoShape TINYINT NOT NULL DEFAULT 0 ,
2021-03-24 10:22:08 +01:00
PRIMARY KEY ( IP ) ,
INDEX ( UsrCod ) ,
INDEX ( LastChange ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table sta_degrees: stores statistics about degrees
--
CREATE TABLE IF NOT EXISTS sta_degrees (
DegCod INT NOT NULL DEFAULT - 1 ,
Sex ENUM ( ' unknown ' , ' female ' , ' male ' , ' all ' ) NOT NULL DEFAULT ' all ' ,
NumStds INT NOT NULL ,
NumStdsWithPhoto INT NOT NULL ,
TimeAvgPhoto DATETIME NOT NULL ,
TimeToComputeAvgPhoto INT NOT NULL DEFAULT - 1 ,
UNIQUE INDEX ( DegCod , Sex ) ) ;
--
2021-03-25 23:52:15 +01:00
-- Table sta_notifications: stores statistics about notifications: number of notified events and number of e-mails sent
2014-12-01 23:55:08 +01:00
--
2021-03-25 23:52:15 +01:00
CREATE TABLE IF NOT EXISTS sta_notifications (
2014-12-01 23:55:08 +01:00
DegCod INT NOT NULL ,
CrsCod INT NOT NULL ,
NotifyEvent TINYINT NOT NULL ,
NumEvents INT NOT NULL ,
NumMails INT NOT NULL ,
UNIQUE INDEX ( DegCod , CrsCod , NotifyEvent ) ) ;
--
-- Table svy_answers: stores the answers to the surveys
--
CREATE TABLE IF NOT EXISTS svy_answers (
QstCod INT NOT NULL ,
AnsInd TINYINT NOT NULL ,
NumUsrs INT NOT NULL DEFAULT 0 ,
Answer TEXT NOT NULL ,
UNIQUE INDEX ( QstCod , AnsInd ) ) ;
2023-05-22 18:28:52 +02:00
--
-- Table svy_comments: stores the comments to the surveys
--
CREATE TABLE IF NOT EXISTS svy_comments ( "
ComCod INT NOT NULL AUTO_INCREMENT ,
QstCod INT NOT NULL ,
Comments TEXT NOT NULL ,
UNIQUE INDEX ( ComCod ) ,
INDEX ( QstCod , ComCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-20 15:06:07 +01:00
-- Table svy_groups: stores the groups associated to each survey
2014-12-01 23:55:08 +01:00
--
2021-03-20 15:06:07 +01:00
CREATE TABLE IF NOT EXISTS svy_groups (
2014-12-01 23:55:08 +01:00
SvyCod INT NOT NULL ,
GrpCod INT NOT NULL ,
UNIQUE INDEX ( SvyCod , GrpCod ) ) ;
--
-- Table svy_questions: stores the questions in the surveys
--
CREATE TABLE IF NOT EXISTS svy_questions (
QstCod INT NOT NULL AUTO_INCREMENT ,
SvyCod INT NOT NULL ,
QstInd INT NOT NULL DEFAULT 0 ,
AnsType ENUM ( ' unique_choice ' , ' multiple_choice ' ) NOT NULL ,
2023-05-22 14:34:35 +02:00
CommentsAllowed ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2014-12-01 23:55:08 +01:00
Stem TEXT NOT NULL ,
UNIQUE INDEX ( QstCod ) ,
INDEX ( SvyCod ) ) ;
--
2021-03-05 02:48:53 +01:00
-- Table svy_surveys: stores the surveys
--
CREATE TABLE IF NOT EXISTS svy_surveys (
SvyCod INT NOT NULL AUTO_INCREMENT ,
Scope ENUM ( ' Sys ' , ' Cty ' , ' Ins ' , ' Ctr ' , ' Deg ' , ' Crs ' ) NOT NULL DEFAULT ' Sys ' ,
Cod INT NOT NULL DEFAULT - 1 ,
Hidden ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
NumNotif INT NOT NULL DEFAULT 0 ,
Roles INT NOT NULL DEFAULT 0 ,
UsrCod INT NOT NULL ,
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
Title VARCHAR ( 2047 ) NOT NULL ,
Txt TEXT NOT NULL ,
UNIQUE INDEX ( SvyCod ) ,
INDEX ( Scope , Cod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table svy_users: stores the users who have answer the surveys
--
CREATE TABLE IF NOT EXISTS svy_users (
SvyCod INT NOT NULL ,
UsrCod INT NOT NULL ,
UNIQUE INDEX ( SvyCod , UsrCod ) ) ;
--
2021-03-19 21:01:09 +01:00
-- Table tmt_courses: stores the timetables of the courses
2014-12-01 23:55:08 +01:00
--
2021-03-19 21:01:09 +01:00
CREATE TABLE IF NOT EXISTS tmt_courses (
2014-12-01 23:55:08 +01:00
CrsCod INT NOT NULL DEFAULT - 1 ,
GrpCod INT NOT NULL DEFAULT - 1 ,
2017-04-25 02:07:32 +02:00
Weekday TINYINT NOT NULL ,
StartTime TIME NOT NULL ,
Duration TIME NOT NULL ,
ClassType ENUM ( ' free ' , ' lecture ' , ' practical ' ) NOT NULL ,
2019-01-07 17:00:04 +01:00
Info VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2014-12-01 23:55:08 +01:00
INDEX ( CrsCod , GrpCod ) ) ;
--
2021-03-19 21:01:09 +01:00
-- Table tmt_tutoring: stores the timetables of tutoring hours of the teachers
2014-12-01 23:55:08 +01:00
--
2021-03-19 21:01:09 +01:00
CREATE TABLE IF NOT EXISTS tmt_tutoring (
2014-12-01 23:55:08 +01:00
UsrCod INT NOT NULL ,
2017-04-25 02:07:32 +02:00
Weekday TINYINT NOT NULL ,
StartTime TIME NOT NULL ,
Duration TIME NOT NULL ,
2019-01-07 17:00:04 +01:00
Info VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2014-12-01 23:55:08 +01:00
INDEX ( UsrCod ) ) ;
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
-- Table tml_comments: stores the content of comments to timeline notes
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_comments (
2019-11-25 13:29:56 +01:00
PubCod BIGINT NOT NULL ,
Txt LONGTEXT NOT NULL ,
MedCod INT NOT NULL DEFAULT - 1 ,
UNIQUE INDEX ( PubCod ) ,
FULLTEXT ( Txt ) ,
INDEX ( MedCod ) ) ENGINE = MYISAM ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_comments_fav: stores users who marked timeline comments as favourite
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_comments_fav (
2019-11-25 13:29:56 +01:00
FavCod BIGINT AUTO_INCREMENT ,
PubCod BIGINT NOT NULL ,
UsrCod INT NOT NULL ,
TimeFav DATETIME NOT NULL ,
UNIQUE INDEX ( FavCod ) ,
UNIQUE INDEX ( PubCod , UsrCod ) ,
INDEX ( UsrCod ) ) ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_notes: stores timeline notes
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_notes (
2019-11-25 13:29:56 +01:00
NotCod BIGINT NOT NULL AUTO_INCREMENT ,
NoteType TINYINT NOT NULL ,
Cod INT NOT NULL DEFAULT - 1 ,
UsrCod INT NOT NULL ,
HieCod INT NOT NULL DEFAULT - 1 ,
Unavailable ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
TimeNote DATETIME NOT NULL ,
UNIQUE INDEX ( NotCod ) ,
INDEX ( NoteType , Cod ) ,
INDEX ( UsrCod ) ,
INDEX ( TimeNote ) ) ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_notes_fav: stores users who marked timeline notes as favourite
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_notes_fav (
2019-11-25 13:29:56 +01:00
FavCod BIGINT AUTO_INCREMENT ,
NotCod BIGINT NOT NULL ,
UsrCod INT NOT NULL ,
TimeFav DATETIME NOT NULL ,
UNIQUE INDEX ( FavCod ) ,
UNIQUE INDEX ( NotCod , UsrCod ) ,
INDEX ( UsrCod ) ) ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_posts: stores timeline posts (public comments written by users)
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_posts (
2019-11-25 13:29:56 +01:00
PstCod INT NOT NULL AUTO_INCREMENT ,
2020-03-10 22:30:42 +01:00
Txt LONGTEXT NOT NULL ,
2019-11-25 13:29:56 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
UNIQUE INDEX ( PstCod ) ,
FULLTEXT ( Content ) ,
INDEX ( MedCod ) ) ENGINE = MYISAM ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_pubs: stores timeline publications (original notes, sharede notes or comments)
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_pubs (
2019-11-25 13:29:56 +01:00
PubCod BIGINT NOT NULL AUTO_INCREMENT ,
NotCod BIGINT NOT NULL ,
PublisherCod INT NOT NULL ,
PubType TINYINT NOT NULL ,
TimePublish DATETIME NOT NULL ,
UNIQUE INDEX ( PubCod ) ,
INDEX ( NotCod , PublisherCod , PubType ) ,
INDEX ( PublisherCod ) ,
INDEX ( PubType ) ,
INDEX ( TimePublish ) ) ;
--
2021-03-04 18:37:16 +01:00
-- Table tml_timelines: stores notes published in timeline for every active session
2019-11-25 13:29:56 +01:00
--
2021-03-04 18:37:16 +01:00
CREATE TABLE IF NOT EXISTS tml_timelines (
2019-11-25 13:29:56 +01:00
SessionId CHAR ( 43 ) NOT NULL ,
NotCod BIGINT NOT NULL ,
UNIQUE INDEX ( SessionId , NotCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table tst_answers: stores the answers to the questions in tests
--
CREATE TABLE IF NOT EXISTS tst_answers (
QstCod INT NOT NULL ,
AnsInd TINYINT NOT NULL ,
Answer TEXT NOT NULL ,
2019-03-04 15:15:22 +01:00
Feedback TEXT NOT NULL ,
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
Correct ENUM ( ' N ' , ' Y ' ) NOT NULL ,
2019-03-19 01:41:27 +01:00
INDEX ( QstCod ) ,
INDEX ( MedCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table tst_config: stores the configuration of tests for each course
--
CREATE TABLE IF NOT EXISTS tst_config (
CrsCod INT NOT NULL DEFAULT - 1 ,
Pluggable ENUM ( ' unknown ' , ' N ' , ' Y ' ) NOT NULL DEFAULT ' unknown ' ,
Min INT NOT NULL ,
Def INT NOT NULL ,
Max INT NOT NULL ,
MinTimeNxtTstPerQst INT NOT NULL DEFAULT 0 ,
2020-02-17 09:48:54 +01:00
Visibility INT NOT NULL DEFAULT 0 x1f ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( CrsCod ) ) ;
--
2020-05-09 01:37:00 +02:00
-- Table tst_exam_questions: stores the questions and answers in test prints made by users
2014-12-01 23:55:08 +01:00
--
CREATE TABLE IF NOT EXISTS tst_exam_questions (
2020-04-02 03:28:08 +02:00
ExaCod INT NOT NULL ,
2014-12-01 23:55:08 +01:00
QstCod INT NOT NULL ,
QstInd INT NOT NULL ,
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
Indexes TEXT NOT NULL ,
Answers TEXT NOT NULL ,
2020-04-02 03:28:08 +02:00
UNIQUE INDEX ( ExaCod , QstCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table tst_exams: stores the test exams made by users
--
CREATE TABLE IF NOT EXISTS tst_exams (
2020-04-02 03:28:08 +02:00
ExaCod INT NOT NULL AUTO_INCREMENT ,
2014-12-01 23:55:08 +01:00
CrsCod INT NOT NULL ,
UsrCod INT NOT NULL ,
2020-03-30 00:30:08 +02:00
StartTime DATETIME NOT NULL ,
EndTime DATETIME NOT NULL ,
2014-12-01 23:55:08 +01:00
NumQsts INT NOT NULL DEFAULT 0 ,
NumQstsNotBlank INT NOT NULL DEFAULT 0 ,
2020-04-16 21:03:22 +02:00
Sent ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2020-03-30 00:30:08 +02:00
AllowTeachers ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2014-12-01 23:55:08 +01:00
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
2020-04-02 03:28:08 +02:00
UNIQUE INDEX ( ExaCod ) ,
2020-03-30 00:30:08 +02:00
INDEX ( CrsCod , UsrCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table tst_question_tags: stores the tags associated to each test question
--
CREATE TABLE IF NOT EXISTS tst_question_tags (
QstCod INT NOT NULL ,
TagCod INT NOT NULL ,
TagInd TINYINT NOT NULL ,
UNIQUE INDEX ( QstCod , TagCod ) ) ;
--
-- Table tst_questions: stores the test questions
--
CREATE TABLE IF NOT EXISTS tst_questions (
QstCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
EditTime DATETIME NOT NULL ,
AnsType ENUM ( ' int ' , ' float ' , ' true_false ' , ' unique_choice ' , ' multiple_choice ' , ' text ' ) NOT NULL ,
Shuffle ENUM ( ' N ' , ' Y ' ) NOT NULL ,
Stem TEXT NOT NULL ,
Feedback TEXT NOT NULL ,
2019-03-19 01:41:27 +01:00
MedCod INT NOT NULL DEFAULT - 1 ,
2014-12-01 23:55:08 +01:00
NumHits INT NOT NULL DEFAULT 0 ,
NumHitsNotBlank INT NOT NULL DEFAULT 0 ,
Score DOUBLE PRECISION NOT NULL DEFAULT 0 ,
UNIQUE INDEX ( QstCod ) ,
2019-03-19 01:41:27 +01:00
INDEX ( CrsCod , EditTime ) ,
INDEX ( MedCod ) ) ;
2014-12-01 23:55:08 +01:00
--
-- Table tst_tags: stores the tags of test questions
--
CREATE TABLE IF NOT EXISTS tst_tags (
TagCod INT NOT NULL AUTO_INCREMENT ,
CrsCod INT NOT NULL DEFAULT - 1 ,
ChangeTime DATETIME NOT NULL ,
2017-03-13 19:02:15 +01:00
TagTxt VARCHAR ( 2047 ) NOT NULL ,
2014-12-01 23:55:08 +01:00
TagHidden ENUM ( ' N ' , ' Y ' ) NOT NULL ,
UNIQUE INDEX ( TagCod ) ,
2017-03-13 19:02:15 +01:00
INDEX ( CrsCod , ChangeTime ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-15 18:33:17 +01:00
-- Table usr_admins: stores users who manage degrees, centres, institutions and system
--
CREATE TABLE IF NOT EXISTS usr_admins (
UsrCod INT NOT NULL ,
Scope ENUM ( ' Sys ' , ' Ins ' , ' Ctr ' , ' Deg ' ) NOT NULL ,
Cod INT NOT NULL ,
UNIQUE INDEX ( UsrCod , Scope , Cod ) ,
INDEX ( Scope , Cod ) ) ;
--
2015-03-29 01:06:00 +01:00
-- Table usr_banned: stores users banned for ranking
2014-12-01 23:55:08 +01:00
--
2015-03-29 01:06:00 +01:00
CREATE TABLE IF NOT EXISTS usr_banned (
2014-12-01 23:55:08 +01:00
UsrCod INT NOT NULL ,
2015-03-29 01:06:00 +01:00
UNIQUE INDEX ( UsrCod ) ) ;
2014-12-01 23:55:08 +01:00
--
2021-03-17 00:48:22 +01:00
-- Table usr_birthdays_today: stores birthdays already congratulated today
--
CREATE TABLE IF NOT EXISTS usr_birthdays_today (
UsrCod INT NOT NULL ,
Today DATE NOT NULL ,
UNIQUE INDEX ( UsrCod ) ,
INDEX ( Today ) ) ;
--
2021-03-17 16:26:16 +01:00
-- Table usr_connected: users currently connected to the platform
--
CREATE TABLE IF NOT EXISTS usr_connected (
UsrCod INT NOT NULL ,
RoleInLastCrs TINYINT NOT NULL DEFAULT 0 ,
LastCrsCod INT NOT NULL DEFAULT - 1 ,
LastTime DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod ) ,
INDEX ( RoleInLastCrs ) ,
INDEX ( LastCrsCod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table usr_data: stores users' data
--
CREATE TABLE IF NOT EXISTS usr_data (
UsrCod INT NOT NULL AUTO_INCREMENT ,
2016-05-01 01:52:35 +02:00
EncryptedUsrCod CHAR ( 43 ) NOT NULL DEFAULT ' ' ,
Password CHAR ( 86 ) COLLATE latin1_bin NOT NULL DEFAULT ' ' ,
2017-03-13 20:32:03 +01:00
Surname1 VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL DEFAULT ' ' ,
Surname2 VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL DEFAULT ' ' ,
FirstName VARCHAR ( 511 ) COLLATE latin1_spanish_ci NOT NULL DEFAULT ' ' ,
2014-12-01 23:55:08 +01:00
Sex ENUM ( ' unknown ' , ' female ' , ' male ' ) NOT NULL DEFAULT ' unknown ' ,
2016-05-01 01:52:35 +02:00
Theme CHAR ( 16 ) NOT NULL DEFAULT ' ' ,
IconSet CHAR ( 16 ) NOT NULL DEFAULT ' ' ,
Language CHAR ( 2 ) NOT NULL DEFAULT ' ' ,
2015-11-21 20:23:28 +01:00
FirstDayOfWeek TINYINT NOT NULL DEFAULT 0 ,
2017-05-04 11:03:44 +02:00
DateFormat TINYINT NOT NULL DEFAULT 0 ,
2016-05-01 01:52:35 +02:00
Photo CHAR ( 43 ) NOT NULL DEFAULT ' ' ,
2016-01-18 10:21:18 +01:00
PhotoVisibility ENUM ( ' unknown ' , ' user ' , ' course ' , ' system ' , ' world ' ) NOT NULL DEFAULT ' unknown ' ,
2019-03-22 15:21:46 +01:00
BaPrfVisibility ENUM ( ' unknown ' , ' user ' , ' course ' , ' system ' , ' world ' ) NOT NULL DEFAULT ' unknown ' ,
ExPrfVisibility ENUM ( ' unknown ' , ' user ' , ' course ' , ' system ' , ' world ' ) NOT NULL DEFAULT ' unknown ' ,
2014-12-01 23:55:08 +01:00
CtyCod INT NOT NULL DEFAULT - 1 ,
InsCtyCod INT NOT NULL DEFAULT - 1 ,
InsCod INT NOT NULL DEFAULT - 1 ,
DptCod INT NOT NULL DEFAULT - 1 ,
CtrCod INT NOT NULL DEFAULT - 1 ,
2017-03-13 20:32:03 +01:00
Office VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2016-05-01 01:52:35 +02:00
OfficePhone CHAR ( 16 ) NOT NULL DEFAULT ' ' ,
2017-03-13 20:32:03 +01:00
LocalAddress VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2016-05-01 01:52:35 +02:00
LocalPhone CHAR ( 16 ) NOT NULL DEFAULT ' ' ,
2017-03-13 20:32:03 +01:00
FamilyAddress VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2016-05-01 01:52:35 +02:00
FamilyPhone CHAR ( 16 ) NOT NULL DEFAULT ' ' ,
2017-03-13 20:32:03 +01:00
OriginPlace VARCHAR ( 2047 ) NOT NULL DEFAULT ' ' ,
2020-03-09 02:50:58 +01:00
Birthday DATE ,
2019-12-18 20:58:10 +01:00
Comments TEXT NOT NULL ,
2015-01-02 01:19:27 +01:00
Menu TINYINT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
SideCols TINYINT NOT NULL DEFAULT 3 ,
2021-12-02 08:39:18 +01:00
PhotoShape TINYINT NOT NULL DEFAULT 0 ,
2019-03-18 15:42:22 +01:00
ThirdPartyCookies ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
2019-03-04 15:15:22 +01:00
NotifNtfEvents INT NOT NULL DEFAULT 0 ,
EmailNtfEvents INT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
PRIMARY KEY ( UsrCod ) ,
UNIQUE INDEX ( EncryptedUsrCod ) ,
INDEX ( Theme ) ,
INDEX ( IconSet ) ,
INDEX ( Language ) ,
2015-11-21 20:23:28 +01:00
INDEX ( FirstDayOfWeek ) ,
2017-05-04 11:03:44 +02:00
INDEX ( DateFormat ) ,
2016-01-27 22:31:36 +01:00
INDEX ( PhotoVisibility ) ,
2019-03-22 15:21:46 +01:00
INDEX ( BaPrfVisibility ) ,
INDEX ( ExPrfVisibility ) ,
2014-12-01 23:55:08 +01:00
INDEX ( CtyCod ) ,
INDEX ( InsCtyCod ) ,
INDEX ( InsCod ) ,
INDEX ( DptCod ) ,
2015-01-02 01:19:27 +01:00
INDEX ( CtrCod ) ,
INDEX ( Menu ) ,
2019-03-18 15:42:22 +01:00
INDEX ( SideCols ) ,
2021-12-02 08:39:18 +01:00
INDEX ( PhotoShape ) ,
2019-03-18 15:42:22 +01:00
INDEX ( ThirdPartyCookies ) ) ;
2014-12-01 23:55:08 +01:00
--
2016-06-15 12:06:41 +02:00
-- Table usr_duplicated: stores informs of users possibly duplicated
--
CREATE TABLE IF NOT EXISTS usr_duplicated (
UsrCod INT NOT NULL ,
InformerCod INT NOT NULL ,
InformTime DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod , InformerCod ) ,
INDEX ( UsrCod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table usr_emails: stores the users' e-mails
--
CREATE TABLE IF NOT EXISTS usr_emails (
UsrCod INT NOT NULL ,
2017-03-13 20:57:51 +01:00
E_mail VARCHAR ( 255 ) COLLATE latin1_general_ci NOT NULL ,
2014-12-01 23:55:08 +01:00
CreatTime DATETIME NOT NULL ,
Confirmed ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( UsrCod , E_mail ) ,
UNIQUE INDEX ( E_mail ) ) ;
--
2015-03-10 01:47:25 +01:00
-- Table usr_figures: stores some figures (numbers) related to users to show in public profile
--
CREATE TABLE IF NOT EXISTS usr_figures (
UsrCod INT NOT NULL ,
FirstClickTime DATETIME NOT NULL ,
2015-03-10 22:41:56 +01:00
NumClicks INT NOT NULL DEFAULT - 1 ,
2019-03-06 10:13:39 +01:00
NumSocPub INT NOT NULL DEFAULT - 1 ,
2015-03-15 19:21:23 +01:00
NumFileViews INT NOT NULL DEFAULT - 1 ,
2015-03-11 12:38:47 +01:00
NumForPst INT NOT NULL DEFAULT - 1 ,
2015-03-11 00:36:12 +01:00
NumMsgSnt INT NOT NULL DEFAULT - 1 ,
2015-03-12 01:52:19 +01:00
PRIMARY KEY ( UsrCod ) ,
INDEX ( FirstClickTime ) ,
INDEX ( NumClicks ) ) ;
2015-03-10 01:47:25 +01:00
--
2015-03-18 01:06:43 +01:00
-- Table usr_follow: stores followers and followed
--
CREATE TABLE IF NOT EXISTS usr_follow (
FollowerCod INT NOT NULL ,
FollowedCod INT NOT NULL ,
FollowTime DATETIME NOT NULL ,
UNIQUE INDEX ( FollowerCod , FollowedCod ) ,
UNIQUE INDEX ( FollowedCod , FollowerCod ) ,
INDEX ( FollowTime ) ) ;
--
2021-03-26 00:23:33 +01:00
-- Table usr_ids: stores the users' IDs
2015-03-29 01:06:00 +01:00
--
2021-03-26 00:23:33 +01:00
CREATE TABLE IF NOT EXISTS usr_ids (
2015-03-29 01:06:00 +01:00
UsrCod INT NOT NULL ,
UsrID CHAR ( 16 ) NOT NULL ,
CreatTime DATETIME NOT NULL ,
Confirmed ENUM ( ' N ' , ' Y ' ) NOT NULL DEFAULT ' N ' ,
UNIQUE INDEX ( UsrCod , UsrID ) ,
INDEX ( UsrID ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table usr_last: stores some variable data related to users
--
CREATE TABLE IF NOT EXISTS usr_last (
UsrCod INT NOT NULL ,
WhatToSearch TINYINT NOT NULL DEFAULT 0 ,
2019-04-01 23:15:17 +02:00
LastSco ENUM ( ' Unk ' , ' Sys ' , ' Cty ' , ' Ins ' , ' Ctr ' , ' Deg ' , ' Crs ' ) NOT NULL DEFAULT ' Unk ' ,
LastCod INT NOT NULL DEFAULT - 1 ,
2019-04-01 13:15:15 +02:00
LastAct INT NOT NULL DEFAULT - 1 ,
LastRole TINYINT NOT NULL DEFAULT 0 ,
2016-04-30 17:16:41 +02:00
LastTime DATETIME NOT NULL ,
LastAccNotif DATETIME NOT NULL ,
2019-02-21 20:04:05 +01:00
TimelineUsrs TINYINT NOT NULL DEFAULT 0 ,
2014-12-01 23:55:08 +01:00
UNIQUE INDEX ( UsrCod ) ,
INDEX ( LastTime ) ) ;
--
-- Table usr_nicknames: stores users' nicknames
--
CREATE TABLE IF NOT EXISTS usr_nicknames (
UsrCod INT NOT NULL ,
Nickname CHAR ( 16 ) COLLATE latin1_spanish_ci NOT NULL ,
CreatTime DATETIME NOT NULL ,
UNIQUE INDEX ( UsrCod , Nickname ) ,
UNIQUE INDEX ( Nickname ) ) ;
--
2021-03-19 16:29:43 +01:00
-- Table usr_pending_emails: stores the emails pending of confirmation
--
CREATE TABLE IF NOT EXISTS usr_pending_emails (
UsrCod INT NOT NULL ,
E_mail VARCHAR ( 255 ) COLLATE latin1_general_ci NOT NULL ,
MailKey CHAR ( 43 ) COLLATE latin1_bin NOT NULL ,
DateAndTime DATETIME NOT NULL ,
INDEX ( UsrCod ) ,
UNIQUE INDEX ( MailKey ) ) ;
--
-- Table usr_pending_passwd: stores the passwords pending of activation, sent by e-mail when a user who have forgotten his/her password request a new one
--
CREATE TABLE IF NOT EXISTS usr_pending_passwd (
UsrCod INT NOT NULL ,
PendingPassword CHAR ( 86 ) COLLATE latin1_bin NOT NULL ,
DateAndTime DATETIME NOT NULL ,
PRIMARY KEY ( UsrCod ) ) ;
--
2021-03-26 00:03:43 +01:00
-- Table usr_reports: stores users' usage reports
2016-10-06 19:29:56 +02:00
--
2021-03-26 00:03:43 +01:00
CREATE TABLE IF NOT EXISTS usr_reports (
2016-10-06 19:29:56 +02:00
RepCod INT NOT NULL AUTO_INCREMENT ,
UsrCod INT NOT NULL ,
2016-10-06 20:35:10 +02:00
ReportTimeUTC DATETIME NOT NULL ,
2016-10-06 19:29:56 +02:00
UniqueDirL CHAR ( 2 ) NOT NULL ,
UniqueDirR CHAR ( 41 ) NOT NULL ,
Filename VARCHAR ( 255 ) NOT NULL ,
Permalink VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( RepCod ) ,
INDEX ( UsrCod ) ) ;
--
2014-12-01 23:55:08 +01:00
-- Table usr_webs: stores users' web and social networks
--
CREATE TABLE IF NOT EXISTS usr_webs (
UsrCod INT NOT NULL ,
2019-03-04 15:15:22 +01:00
Web ENUM (
' www ' ,
' 500px ' ,
' delicious ' , ' deviantart ' , ' diaspora ' ,
' edmodo ' ,
' facebook ' , ' flickr ' , ' foursquare ' ,
' github ' , ' gnusocial ' , ' googleplus ' , ' googlescholar ' ,
' identica ' , ' instagram ' ,
' linkedin ' ,
' orcid ' ,
' paperli ' , ' pinterest ' ,
' researchgate ' , ' researcherid ' ,
' scoopit ' , ' slideshare ' , ' stackoverflow ' , ' storify ' ,
' tumblr ' , ' twitter ' ,
' wikipedia ' ,
' youtube ' ) NOT NULL ,
2014-12-01 23:55:08 +01:00
URL VARCHAR ( 255 ) NOT NULL ,
UNIQUE INDEX ( UsrCod , Web ) ) ;