2014-12-01 23:55:08 +01:00
|
|
|
|
// swad_database.c: database
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
SWAD (Shared Workspace At a Distance),
|
|
|
|
|
is a web platform developed at the University of Granada (Spain),
|
|
|
|
|
and used to support university teaching.
|
|
|
|
|
|
|
|
|
|
This file is part of SWAD core.
|
2021-02-09 12:43:45 +01:00
|
|
|
|
Copyright (C) 1999-2021 Antonio Ca<EFBFBD>as Vargas
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
This program is free software: you can redistribute it and/or modify
|
|
|
|
|
it under the terms of the GNU Affero General Public License as
|
|
|
|
|
published by the Free Software Foundation, either version 3 of the
|
|
|
|
|
License, or (at your option) any later version.
|
|
|
|
|
|
|
|
|
|
This program is distributed in the hope that it will be useful,
|
|
|
|
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
GNU Affero General Public License for more details.
|
|
|
|
|
|
|
|
|
|
You should have received a copy of the GNU Affero General Public License
|
|
|
|
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/*********************************** Headers *********************************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-10-25 11:26:44 +02:00
|
|
|
|
#define _GNU_SOURCE // For vasprintf
|
2014-12-01 23:55:08 +01:00
|
|
|
|
#include <mysql/mysql.h> // To access MySQL databases
|
2018-10-25 13:15:53 +02:00
|
|
|
|
#include <stdarg.h> // For va_start, va_end
|
2019-12-29 12:39:00 +01:00
|
|
|
|
#include <stddef.h> // For NULL
|
2019-12-30 22:32:06 +01:00
|
|
|
|
#include <stdio.h> // For FILE, vasprintf
|
2018-10-25 13:15:53 +02:00
|
|
|
|
#include <stdlib.h> // For free
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
#include "swad_config.h"
|
|
|
|
|
#include "swad_database.h"
|
|
|
|
|
#include "swad_global.h"
|
2019-10-26 22:49:13 +02:00
|
|
|
|
#include "swad_HTML.h"
|
2018-12-08 16:43:13 +01:00
|
|
|
|
#include "swad_language.h"
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/************** External global variables from others modules ****************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
extern struct Globals Gbl;
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
2019-11-21 16:47:07 +01:00
|
|
|
|
/************************* Private global variables **************************/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/***************************** Private prototypes ****************************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
static void DB_CreateTable (const char *Query);
|
2018-11-14 23:40:56 +01:00
|
|
|
|
static unsigned long DB_QuerySELECTusingQueryStr (char *Query,
|
|
|
|
|
MYSQL_RES **mysql_res,
|
|
|
|
|
const char *MsgError);
|
2018-10-25 11:26:44 +02:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/***************************** Database tables *******************************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
Database:
|
|
|
|
|
shell> mysql -h swad.ugr.es -u swad -p
|
|
|
|
|
mysql> CREATE DATABASE IF NOT EXIST swad;
|
|
|
|
|
mysql> SHOW databases;
|
|
|
|
|
mysql> USE swad
|
|
|
|
|
mysql> SHOW tables;
|
|
|
|
|
mysql> DROP TABLE table_to_delete; // Delete a table
|
|
|
|
|
mysql> TRUNCATE TABLE table_to_delete; // Delete all rows
|
|
|
|
|
shell> mysqldump -l -h swad.ugr.es -u swad -p swad > copia_base_datos_swad // Backup of the whole database
|
|
|
|
|
mysql> UPDATE table SET CrsCod='new_code' WHERE CrsCod='old_code'; // Change a course code
|
|
|
|
|
mysql> ALTER TABLE table ADD COLUMN new_column_definition AFTER Columna; // Add a new column to a table
|
|
|
|
|
mysql> ALTER TABLE table RENAME TO new_table_name; // Rename a table
|
|
|
|
|
MYSQL> ALTER TABLE table MODIFY COLUMN new_column_definition;
|
|
|
|
|
mysql> UPDATE msg_content SET Content=REPLACE(Content,'<BR>','<br />'); // Change <BR> by <br /> in messages
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/****************** Create database tables if not exist **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_CreateTablesIfNotExist (void)
|
|
|
|
|
{
|
|
|
|
|
extern const char *Txt_Creating_database_tables_if_they_do_not_exist;
|
|
|
|
|
extern const char *Txt_Created_tables_in_the_database_that_did_not_exist;
|
|
|
|
|
|
|
|
|
|
/***** Information message *****/
|
2019-02-16 14:37:34 +01:00
|
|
|
|
Ale_ShowAlert (Ale_INFO,Txt_Creating_database_tables_if_they_do_not_exist);
|
2019-11-11 00:15:44 +01:00
|
|
|
|
HTM_OL_Begin ();
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table IP_prefs *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE IP_prefs;
|
2015-11-21 20:23:28 +01:00
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
|
|
|
|
| IP | char(15) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| LastChange | datetime | NO | MUL | NULL | |
|
|
|
|
|
| FirstDayOfWeek | tinyint(4) | NO | | 0 | |
|
2017-05-04 11:03:44 +02:00
|
|
|
|
| DateFormat | tinyint(4) | NO | | 0 | |
|
2015-11-21 20:23:28 +01:00
|
|
|
|
| Theme | char(16) | NO | | NULL | |
|
|
|
|
|
| IconSet | char(16) | NO | | NULL | |
|
|
|
|
|
| Menu | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| SideCols | tinyint(4) | NO | | NULL | |
|
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
2017-05-04 11:03:44 +02:00
|
|
|
|
9 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS IP_prefs ("
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"UsrCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"LastChange DATETIME NOT NULL,"
|
|
|
|
|
"FirstDayOfWeek TINYINT NOT NULL DEFAULT 0,"
|
2017-05-04 11:03:44 +02:00
|
|
|
|
"DateFormat TINYINT NOT NULL DEFAULT 0,"
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"Theme CHAR(16) NOT NULL," // The_MAX_BYTES_THEME_ID
|
|
|
|
|
"IconSet CHAR(16) NOT NULL," // Ico_MAX_BYTES_ICON_SET_ID
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"Menu TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"SideCols TINYINT NOT NULL,"
|
|
|
|
|
"PRIMARY KEY (IP),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(LastChange))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-08 10:12:10 +01:00
|
|
|
|
/***** Table act_actions *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
2021-03-08 10:12:10 +01:00
|
|
|
|
mysql> DESCRIBE act_actions;
|
2014-12-01 23:55:08 +01:00
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| ActCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| Language | char(2) | NO | PRI | es | |
|
|
|
|
|
| Obsolete | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Txt | varchar(255) | NO | MUL | NULL | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-08 10:12:10 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS act_actions ("
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"ActCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Language CHAR(2) NOT NULL,"
|
|
|
|
|
"Obsolete ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"Txt VARCHAR(255) NOT NULL," // Act_MAX_BYTES_ACTION_TXT
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"UNIQUE INDEX(ActCod,Language),"
|
|
|
|
|
"INDEX(Txt))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-08 10:12:10 +01:00
|
|
|
|
/***** Table act_MFU *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
2021-03-08 10:12:10 +01:00
|
|
|
|
mysql> DESCRIBE act_MFU;
|
2014-12-01 23:55:08 +01:00
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| ActCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Score | float | NO | | NULL | |
|
|
|
|
|
| LastClick | datetime | NO | | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.01 sec)
|
|
|
|
|
*/
|
2021-03-08 10:12:10 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS act_MFU ("
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"ActCod INT NOT NULL,"
|
|
|
|
|
"Score FLOAT NOT NULL,"
|
|
|
|
|
"LastClick DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,ActCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2016-12-03 19:22:06 +01:00
|
|
|
|
/***** Table agendas *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE agendas;
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| AgdCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Public | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
2017-03-08 20:31:49 +01:00
|
|
|
|
| Event | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Location | varchar(2047) | NO | | NULL | |
|
2016-12-03 19:22:06 +01:00
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
9 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS agendas ("
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"AgdCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Public ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"StartTime DATETIME NOT NULL,"
|
|
|
|
|
"EndTime DATETIME NOT NULL,"
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"Event VARCHAR(2047) NOT NULL," // Agd_MAX_BYTES_EVENT
|
|
|
|
|
"Location VARCHAR(2047) NOT NULL," // Agd_MAX_BYTES_LOCATION
|
2017-03-13 14:45:05 +01:00
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
2017-03-08 14:12:33 +01:00
|
|
|
|
"UNIQUE INDEX(AgdCod),"
|
|
|
|
|
"INDEX(UsrCod,Public,Hidden))");
|
2016-12-03 19:22:06 +01:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table ann_seen *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE ann_seen;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| AnnCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ann_seen ("
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"AnnCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
2014-12-01 23:55:08 +01:00
|
|
|
|
"UNIQUE INDEX(AnnCod,UsrCod))");
|
|
|
|
|
|
|
|
|
|
/***** Table announcements *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE announcements;
|
2015-11-01 20:21:59 +01:00
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| AnnCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| Roles | int(11) | NO | | 0 | |
|
|
|
|
|
| Subject | text | NO | | NULL | |
|
|
|
|
|
| Content | text | NO | | NULL | |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS announcements ("
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"AnnCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"Status TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Roles INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT
|
|
|
|
|
"Content TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(AnnCod),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table asg_grp *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE asg_grp;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| AsgCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS asg_grp ("
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"AsgCod INT NOT NULL,"
|
|
|
|
|
"GrpCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(AsgCod,GrpCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table assignments *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE assignments;
|
2017-03-08 21:05:42 +01:00
|
|
|
|
+-----------+----------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------------+------+-----+---------+----------------+
|
|
|
|
|
| AsgCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Folder | varbinary(255) | NO | | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+-----------+----------------+------+-----+---------+----------------+
|
|
|
|
|
10 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS assignments ("
|
2017-03-08 21:05:42 +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,"
|
|
|
|
|
"Title VARCHAR(2047) NOT NULL," // Asg_MAX_BYTES_ASSIGNMENT_TITLE
|
2017-03-08 22:23:52 +01:00
|
|
|
|
"Folder VARBINARY(255) NOT NULL," // Brw_MAX_BYTES_FOLDER
|
2017-03-08 21:05:42 +01:00
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(AsgCod),"
|
|
|
|
|
"INDEX(CrsCod,Hidden))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table att_events *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE att_events;
|
|
|
|
|
+-------------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| AttCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| CommentTchVisible | enum('N','Y') | NO | | N | |
|
2017-03-09 01:33:09 +01:00
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+-------------------+---------------+------+-----+---------+----------------+
|
2017-03-09 01:33:09 +01:00
|
|
|
|
9 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS att_events ("
|
2017-03-08 22:23:52 +01:00
|
|
|
|
"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," // Att_MAX_BYTES_ATTENDANCE_EVENT_TITLE
|
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
2017-03-09 11:16:17 +01:00
|
|
|
|
"UNIQUE INDEX(AttCod),"
|
|
|
|
|
"INDEX(CrsCod,Hidden))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table att_grp *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE att_grp;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| AttCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS att_grp ("
|
2017-03-09 11:16:17 +01:00
|
|
|
|
"AttCod INT NOT NULL,"
|
|
|
|
|
"GrpCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(AttCod,GrpCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table att_usr *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE att_usr;
|
|
|
|
|
+------------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------------+------+-----+---------+-------+
|
|
|
|
|
| AttCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Present | enum('N','Y') | NO | | Y | |
|
|
|
|
|
| CommentStd | text | NO | | NULL | |
|
|
|
|
|
| CommentTch | text | NO | | NULL | |
|
|
|
|
|
+------------+---------------+------+-----+---------+-------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS att_usr ("
|
2017-03-09 11:16:17 +01:00
|
|
|
|
"AttCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Present ENUM('N','Y') NOT NULL DEFAULT 'Y',"
|
|
|
|
|
"CommentStd TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"CommentTch TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(AttCod,UsrCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table banners *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE banners;
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| BanCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | MUL | N | |
|
2017-03-09 11:16:17 +01:00
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| Img | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
2017-03-09 11:16:17 +01:00
|
|
|
|
6 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS banners ("
|
2017-03-09 11:16:17 +01:00
|
|
|
|
"BanCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"Hidden ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Ban_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Ban_MAX_BYTES_FULL_NAME
|
|
|
|
|
"Img VARCHAR(255) NOT NULL," // Ban_MAX_BYTES_IMAGE
|
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(BanCod),"
|
|
|
|
|
"INDEX(Hidden))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table birthdays_today *****/
|
|
|
|
|
// Stores birthdays already congratulated today
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE birthdays_today;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Today | date | NO | MUL | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.09 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS birthdays_today ("
|
2017-03-09 21:11:06 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Today DATE NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod),"
|
|
|
|
|
"INDEX(Today))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-04-14 22:45:10 +02:00
|
|
|
|
/***** Table buildings *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE buildings;
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| BldCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Location | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS buildings ("
|
|
|
|
|
"BldCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CtrCod INT NOT NULL,"
|
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Bld_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Bld_MAX_BYTES_FULL_NAME
|
|
|
|
|
"Location VARCHAR(2047) NOT NULL," // Bld_MAX_BYTES_LOCATION
|
|
|
|
|
"UNIQUE INDEX(BldCod),"
|
|
|
|
|
"INDEX(CtrCod))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table chat *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE chat;
|
2017-03-09 21:24:06 +01:00
|
|
|
|
+----------+-------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+-------------+------+-----+---------+-------+
|
|
|
|
|
| RoomCode | varchar(16) | NO | PRI | NULL | |
|
|
|
|
|
| NumUsrs | int(11) | NO | | NULL | |
|
|
|
|
|
+----------+-------------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS chat ("\
|
2017-03-09 21:24:06 +01:00
|
|
|
|
"RoomCode VARCHAR(16) NOT NULL," // Cht_MAX_BYTES_ROOM_CODE
|
|
|
|
|
"NumUsrs INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(RoomCode))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table clicks_without_photo *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE clicks_without_photo;
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| NumClicks | int(11) | NO | | NULL | |
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS clicks_without_photo ("
|
2017-03-10 02:40:01 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"NumClicks INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table clipboard *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE clipboard;
|
|
|
|
|
+-------------+------------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| FileBrowser | tinyint(4) | NO | MUL | NULL | |
|
2015-01-24 19:30:44 +01:00
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| WorksUsrCod | int(11) | NO | MUL | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| FileType | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| Path | text | NO | | NULL | |
|
|
|
|
|
| CopyTime | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
|
|
|
|
|
+-------------+------------+------+-----+-------------------+-----------------------------+
|
2015-01-24 19:30:44 +01:00
|
|
|
|
7 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS clipboard ("
|
2017-03-10 02:40:01 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"FileBrowser TINYINT NOT NULL,"
|
|
|
|
|
"Cod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"WorksUsrCod INT NOT NULL,"
|
|
|
|
|
"FileType TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Path TEXT COLLATE latin1_bin NOT NULL," // PATH_MAX
|
|
|
|
|
"CopyTime TIMESTAMP,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod),"
|
|
|
|
|
"INDEX(FileBrowser,Cod),"
|
|
|
|
|
"INDEX(WorksUsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table connected *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE connected;
|
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
2016-09-22 01:28:31 +02:00
|
|
|
|
| RoleInLastCrs | tinyint(4) | NO | MUL | 0 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| LastCrsCod | int(11) | NO | MUL | -1 | |
|
2016-04-30 17:16:41 +02:00
|
|
|
|
| LastTime | datetime | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
2016-09-22 01:28:31 +02:00
|
|
|
|
4 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS connected ("
|
2017-03-10 02:40:01 +01:00
|
|
|
|
"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
|
|
|
|
|
2021-03-07 17:45:36 +01:00
|
|
|
|
/***** Table crs_courses *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
2021-03-07 17:45:36 +01:00
|
|
|
|
mysql> DESCRIBE crs_courses;
|
2017-03-11 00:47:23 +01:00
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| DegCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Year | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| InsCrsCod | char(7) | NO | | NULL | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| RequesterUsrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| NumIndicators | int(11) | NO | | -1 | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
9 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
2021-03-07 17:45:36 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_courses ("
|
2017-03-10 23:19: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,"
|
|
|
|
|
"Status TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"RequesterUsrCod INT NOT NULL DEFAULT -1,"
|
2021-02-11 22:57:09 +01:00
|
|
|
|
"ShortName VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
2017-03-10 23:19:08 +01:00
|
|
|
|
"NumIndicators INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"UNIQUE INDEX(CrsCod),"
|
|
|
|
|
"INDEX(DegCod,Year),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_grp *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_grp;
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| GrpTypCod | int(11) | NO | MUL | NULL | |
|
2017-03-11 00:47:23 +01:00
|
|
|
|
| GrpName | varchar(2047) | NO | | NULL | |
|
2020-04-14 17:15:17 +02:00
|
|
|
|
| RooCod | int(11) | NO | MUL | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| MaxStudents | int(11) | NO | | NULL | |
|
|
|
|
|
| Open | enum('N','Y') | NO | | N | |
|
|
|
|
|
| FileZones | enum('N','Y') | NO | | N | |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
2019-01-04 11:59:31 +01:00
|
|
|
|
7 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp ("
|
2017-03-11 00:47:23 +01:00
|
|
|
|
"GrpCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"GrpTypCod INT NOT NULL,"
|
|
|
|
|
"GrpName VARCHAR(2047) NOT NULL," // Grp_MAX_BYTES_GROUP_NAME
|
|
|
|
|
"MaxStudents INT NOT NULL,"
|
2020-04-14 17:15:17 +02:00
|
|
|
|
"RooCod INT NOT NULL DEFAULT -1,"
|
2017-03-11 00:47:23 +01:00
|
|
|
|
"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
|
|
|
|
|
|
|
|
|
/***** Table crs_grp_types *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_grp_types;
|
2016-04-30 17:16:41 +02:00
|
|
|
|
+--------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| GrpTypCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
2017-03-11 00:47:23 +01:00
|
|
|
|
| GrpTypName | varchar(2047) | NO | | NULL | |
|
2016-04-30 17:16:41 +02:00
|
|
|
|
| Mandatory | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
| Multiple | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
| MustBeOpened | enum('N','Y') | NO | | N | |
|
|
|
|
|
| OpenTime | datetime | NO | | NULL | |
|
|
|
|
|
+--------------+---------------+------+-----+---------+----------------+
|
2017-03-11 00:47:23 +01:00
|
|
|
|
7 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp_types ("
|
2017-03-11 00:47:23 +01:00
|
|
|
|
"GrpTypCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"GrpTypName VARCHAR(2047) NOT NULL," // Grp_MAX_BYTES_GROUP_TYPE_NAME
|
|
|
|
|
"Mandatory ENUM('N','Y') NOT NULL,"
|
|
|
|
|
"Multiple ENUM('N','Y') NOT NULL,"
|
|
|
|
|
"MustBeOpened ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"OpenTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(GrpTypCod),"
|
|
|
|
|
"INDEX(CrsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_grp_usr *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_grp_usr;
|
2015-01-22 01:39:00 +01:00
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_grp_usr ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"GrpCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(GrpCod,UsrCod),"
|
|
|
|
|
"INDEX(GrpCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_info_read *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_info_read;
|
|
|
|
|
+----------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| InfoType | enum('intro','description','theory','practices','bibliography','FAQ','links','assessment') | NO | PRI | NULL | |
|
|
|
|
|
+----------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_read ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_info_src *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_info_src;
|
|
|
|
|
+------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| InfoType | enum('intro','description','theory','practices','bibliography','FAQ','links','assessment') | NO | PRI | NULL | |
|
|
|
|
|
| InfoSrc | enum('none','editor','plain_text','rich_text','page','URL') | NO | | NULL | |
|
|
|
|
|
| MustBeRead | enum('N','Y') | NO | | N | |
|
|
|
|
|
+------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_src ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_info_txt *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_info_txt;
|
2015-04-07 21:44:24 +02:00
|
|
|
|
+-------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| InfoType | enum('intro','description','theory','practices','bibliography','FAQ','links','assessment') | NO | PRI | NULL | |
|
|
|
|
|
| InfoTxtHTML | longtext | NO | | NULL | |
|
|
|
|
|
| InfoTxtMD | longtext | NO | | NULL | |
|
|
|
|
|
+-------------+--------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.01 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_info_txt ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"InfoType ENUM('intro','description','theory','practices','bibliography','FAQ','links','assessment') NOT NULL,"
|
|
|
|
|
"InfoTxtHTML LONGTEXT NOT NULL,"
|
|
|
|
|
"InfoTxtMD LONGTEXT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(CrsCod,InfoType))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_last *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_last;
|
2016-04-30 17:16:41 +02:00
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| LastTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
2014-12-01 23:55:08 +01:00
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_last ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"CrsCod INT NOT NULL,"
|
|
|
|
|
"LastTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(CrsCod),"
|
|
|
|
|
"INDEX(LastTime))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_record_fields *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_record_fields;
|
2017-03-11 18:59:13 +01:00
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| FieldCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| FieldName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| NumLines | int(11) | NO | | NULL | |
|
|
|
|
|
| Visibility | tinyint(4) | NO | | NULL | |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_record_fields ("
|
2017-03-11 18:59:13 +01:00
|
|
|
|
"FieldCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"FieldName VARCHAR(2047) NOT NULL," // Rec_MAX_BYTES_NAME_FIELD
|
|
|
|
|
"NumLines INT NOT NULL,"
|
|
|
|
|
"Visibility TINYINT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(FieldCod),"
|
|
|
|
|
"INDEX(CrsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_records *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_records;
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| FieldCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_records ("
|
2017-03-11 20:36:55 +01:00
|
|
|
|
"FieldCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(FieldCod,UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_usr *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_usr;
|
2020-04-30 02:29:44 +02:00
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Role | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| Accepted | enum('N','Y') | NO | | N | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr ("
|
2020-04-30 02:29:44 +02:00
|
|
|
|
"CrsCod INT NOT NULL,"
|
2017-03-11 20:36:55 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Role TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Accepted ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
2020-04-30 01:55:23 +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))");
|
|
|
|
|
|
|
|
|
|
/***** Table crs_usr_last *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_usr_last;
|
|
|
|
|
+----------------+---------------------------+------+-----+------------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+---------------------------+------+-----+------------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
2020-04-30 02:29:44 +02:00
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | |
|
2020-04-30 01:55:23 +02:00
|
|
|
|
| LastDowGrpCod | int(11) | NO | | -1 | |
|
|
|
|
|
| LastComGrpCod | int(11) | NO | | -1 | |
|
|
|
|
|
| LastAssGrpCod | int(11) | NO | | -1 | |
|
|
|
|
|
| NumAccTst | int(11) | NO | | 0 | |
|
|
|
|
|
| LastAccTst | datetime | NO | | NULL | |
|
|
|
|
|
| NumQstsLastTst | int(11) | NO | | 0 | |
|
|
|
|
|
| UsrListType | enum('classphoto','list') | NO | | classphoto | |
|
|
|
|
|
| ColsClassPhoto | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| ListWithPhotos | enum('N','Y') | NO | | Y | |
|
|
|
|
|
+----------------+---------------------------+------+-----+------------+-------+
|
2020-04-30 02:29:44 +02:00
|
|
|
|
11 rows in set (0.00 sec)
|
2020-04-30 01:55:23 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr_last ("
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
2020-04-30 02:29:44 +02:00
|
|
|
|
"CrsCod INT NOT NULL,"
|
2017-03-11 20:36:55 +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,"
|
|
|
|
|
"LastAccTst DATETIME NOT NULL,"
|
|
|
|
|
"NumQstsLastTst INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"UsrListType ENUM('classphoto','list') NOT NULL DEFAULT 'classphoto',"
|
|
|
|
|
"ColsClassPhoto TINYINT NOT NULL,"
|
|
|
|
|
"ListWithPhotos ENUM('N','Y') NOT NULL DEFAULT 'Y',"
|
2020-04-30 01:55:23 +02:00
|
|
|
|
"UNIQUE INDEX(UsrCod,CrsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table crs_usr_requests *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE crs_usr_requests;
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| ReqCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Role | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| RequestTime | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS crs_usr_requests ("
|
2017-03-11 20:36:55 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-08 09:48:13 +01:00
|
|
|
|
/***** Table ctr_centers *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE ctr_centers;
|
|
|
|
|
+------------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| CtrCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| PlcCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| RequesterUsrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Latitude | double | NO | | 0 | |
|
|
|
|
|
| Longitude | double | NO | | 0 | |
|
|
|
|
|
| Altitude | double | NO | | 0 | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
| PhotoAttribution | text | NO | | NULL | |
|
|
|
|
|
+------------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
12 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ctr_centers ("
|
|
|
|
|
"CtrCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"InsCod INT NOT NULL,"
|
|
|
|
|
"PlcCod INT NOT NULL,"
|
|
|
|
|
"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," // Cns_HIERARCHY_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"PhotoAttribution TEXT NOT NULL," // Med_MAX_BYTES_ATTRIBUTION
|
|
|
|
|
"UNIQUE INDEX(CtrCod),"
|
|
|
|
|
"INDEX(InsCod),"
|
|
|
|
|
"INDEX(PlcCod),"
|
|
|
|
|
"INDEX(Status))");
|
|
|
|
|
|
|
|
|
|
/***** Table cty_countrs *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE cty_countrs;
|
|
|
|
|
+----------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| CtyCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Alpha2 | char(2) | NO | UNI | NULL | |
|
|
|
|
|
| MapAttribution | text | NO | | NULL | |
|
|
|
|
|
| Name_ca | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_de | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_en | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_es | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_fr | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_gn | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_it | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_pl | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| Name_pt | varchar(767) | NO | MUL | NULL | |
|
|
|
|
|
| WWW_ca | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_de | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_en | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_es | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_fr | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_gn | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_it | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_pl | varchar(255) | NO | | NULL | |
|
|
|
|
|
| WWW_pt | varchar(255) | NO | | NULL | |
|
|
|
|
|
+----------------+--------------+------+-----+---------+-------+
|
|
|
|
|
21 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS cty_countrs ("
|
|
|
|
|
"CtyCod INT NOT NULL,"
|
|
|
|
|
"Alpha2 CHAR(2) NOT NULL,"
|
|
|
|
|
"MapAttribution TEXT NOT NULL," // Med_MAX_BYTES_ATTRIBUTION
|
|
|
|
|
"Name_ca VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_de VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_en VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_es VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_fr VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_gn VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_it VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_pl VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"Name_pt VARCHAR(767) NOT NULL," // Cty_MAX_BYTES_NAME
|
|
|
|
|
"WWW_ca VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_de VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_en VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_es VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_fr VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_gn VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_it VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_pl VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"WWW_pt VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"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),"
|
|
|
|
|
"INDEX(Name_pt))"); // ISO 3166-1 country codes
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table deg_types *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE deg_types;
|
2017-03-11 20:36:55 +01:00
|
|
|
|
+------------+--------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+--------------+------+-----+---------+----------------+
|
|
|
|
|
| DegTypCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| DegTypName | varchar(511) | NO | | NULL | |
|
|
|
|
|
+------------+--------------+------+-----+---------+----------------+
|
|
|
|
|
2 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS deg_types ("
|
2017-03-11 20:36:55 +01:00
|
|
|
|
"DegTypCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"DegTypName VARCHAR(511) NOT NULL," // Deg_MAX_BYTES_DEGREE_TYPE_NAME
|
|
|
|
|
"UNIQUE INDEX(DegTypCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-06 00:38:52 +01:00
|
|
|
|
/***** Table deg_degrees *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
2021-03-06 00:38:52 +01:00
|
|
|
|
mysql> DESCRIBE deg_degrees;
|
2017-03-11 20:59:09 +01:00
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| DegCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| DegTypCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| RequesterUsrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0,00 sec)
|
2015-12-06 01:37:22 +01:00
|
|
|
|
*/
|
2021-03-06 00:38:52 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS deg_degrees ("
|
2017-03-11 20:59:09 +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,"
|
2021-02-11 22:57:09 +01:00
|
|
|
|
"ShortName VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
2017-03-11 20:59:09 +01:00
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(DegCod),"
|
|
|
|
|
"INDEX(CtrCod),"
|
|
|
|
|
"INDEX(DegTypCod),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table departments *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE departments;
|
2017-03-11 21:14:38 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| DptCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS departments ("
|
2017-03-11 21:14:38 +01:00
|
|
|
|
"DptCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"InsCod INT NOT NULL,"
|
2021-02-11 22:57:09 +01:00
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Cns_HIERARCHY_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
2017-03-11 21:14:38 +01:00
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(DptCod),"
|
|
|
|
|
"INDEX(InsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-04-22 22:40:07 +02:00
|
|
|
|
/***** Table exa_groups *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_groups;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
2020-05-17 02:28:30 +02:00
|
|
|
|
| SesCod | int(11) | NO | PRI | NULL | |
|
2020-04-22 22:40:07 +02:00
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
2020-05-17 02:28:30 +02:00
|
|
|
|
2 rows in set (0.00 sec)
|
2020-04-22 22:40:07 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_groups ("
|
2020-05-17 02:28:30 +02:00
|
|
|
|
"SesCod INT NOT NULL,"
|
2020-04-22 22:40:07 +02:00
|
|
|
|
"GrpCod INT NOT NULL,"
|
2020-05-17 02:28:30 +02:00
|
|
|
|
"UNIQUE INDEX(SesCod,GrpCod))");
|
2020-04-22 22:40:07 +02:00
|
|
|
|
|
|
|
|
|
/***** Table exa_exams *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_exams;
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| ExaCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| MaxGrade | double | NO | | 1 | |
|
|
|
|
|
| Visibility | int(11) | NO | | 31 | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // Scale from score [0...num.answers] to grade [0...MaxGrade]
|
|
|
|
|
"Visibility INT NOT NULL DEFAULT 0x1f,"
|
|
|
|
|
"Title VARCHAR(2047) NOT NULL," // Exa_MAX_BYTES_TITLE
|
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(ExaCod),"
|
|
|
|
|
"INDEX(CrsCod))");
|
|
|
|
|
|
2020-05-22 20:10:45 +02:00
|
|
|
|
/***** Table exa_log *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_log;
|
2020-05-23 13:24:08 +02:00
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| PrnCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| ActCod | int(11) | NO | | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | | -1 | |
|
2020-05-23 19:08:59 +02:00
|
|
|
|
| CanAnswer | enum('N','Y') | NO | | N | |
|
2020-05-23 13:24:08 +02:00
|
|
|
|
| ClickTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| IP | char(15) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
2020-05-24 18:26:40 +02:00
|
|
|
|
7 rows in set (0.00 sec)
|
2020-05-22 20:10:45 +02:00
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("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," // Cns_MAX_BYTES_IP
|
|
|
|
|
"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))");
|
|
|
|
|
|
2020-05-24 18:26:40 +02:00
|
|
|
|
/***** Table exa_log_session *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_log_session;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| PrnCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| SessionId | char(43) | NO | | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_log_session ("
|
|
|
|
|
"LogCod INT NOT NULL,"
|
|
|
|
|
"PrnCod INT NOT NULL,"
|
|
|
|
|
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
|
|
|
|
"UNIQUE INDEX(LogCod),"
|
|
|
|
|
"UNIQUE INDEX(PrnCod,LogCod))");
|
|
|
|
|
|
2020-05-24 15:42:51 +02:00
|
|
|
|
/***** Table exa_log_user_agent *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_log_user_agent;
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| PrnCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| UserAgent | text | NO | | NULL | |
|
|
|
|
|
+-----------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_log_user_agent ("
|
|
|
|
|
"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 *****/
|
|
|
|
|
/*
|
2020-05-09 21:07:50 +02:00
|
|
|
|
mysql> DESCRIBE exa_print_questions;
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
2020-05-09 01:37:00 +02:00
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
| PrnCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | | NULL | |
|
2020-05-09 21:07:50 +02:00
|
|
|
|
| SetCod | int(11) | NO | | NULL | |
|
2020-05-09 01:37:00 +02:00
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
| Indexes | text | NO | | NULL | |
|
|
|
|
|
| Answers | text | NO | | NULL | |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
2020-05-09 21:07:50 +02:00
|
|
|
|
7 rows in set (0.01 sec)
|
2020-05-09 01:37:00 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // Tst_MAX_BYTES_INDEXES_ONE_QST
|
|
|
|
|
"Answers TEXT NOT NULL," // Tst_MAX_BYTES_ANSWERS_ONE_QST
|
|
|
|
|
"UNIQUE INDEX(PrnCod,QstCod))");
|
|
|
|
|
|
|
|
|
|
/***** Table exa_prints *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_prints;
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| PrnCod | int(11) | NO | PRI | NULL | auto_increment |
|
2020-05-17 02:28:30 +02:00
|
|
|
|
| SesCod | int(11) | NO | MUL | NULL | |
|
2020-05-09 01:37:00 +02:00
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| NumQsts | int(11) | NO | | 0 | |
|
|
|
|
|
| NumQstsNotBlank | int(11) | NO | | 0 | |
|
|
|
|
|
| Sent | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
9 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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))");
|
|
|
|
|
|
|
|
|
|
/***** Table exa_sessions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_sessions;
|
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| SesCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ExaCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| ShowUsrResults | enum('N','Y') | NO | | N | |
|
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // ExaSes_MAX_BYTES_TITLE
|
|
|
|
|
"ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"UNIQUE INDEX(SesCod),"
|
|
|
|
|
"INDEX(ExaCod))");
|
2020-05-09 01:37:00 +02:00
|
|
|
|
|
2020-05-13 00:28:32 +02:00
|
|
|
|
/***** Table exa_set_answers *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_set_answers;
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| AnsInd | tinyint(4) | NO | PRI | NULL | |
|
|
|
|
|
| Answer | text | NO | | NULL | |
|
|
|
|
|
| Feedback | text | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Correct | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_set_answers ("
|
|
|
|
|
"QstCod INT NOT NULL,"
|
|
|
|
|
"AnsInd TINYINT NOT NULL,"
|
|
|
|
|
"Answer TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK
|
|
|
|
|
"Feedback TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK
|
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Correct ENUM('N','Y') NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(QstCod,AnsInd),"
|
|
|
|
|
"INDEX(MedCod))");
|
|
|
|
|
|
|
|
|
|
/***** Table exa_set_questions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_set_questions;
|
2020-06-17 20:20:16 +02:00
|
|
|
|
+----------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| SetCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Invalid | enum('N','Y') | NO | | N | |
|
|
|
|
|
| AnsType | enum('int','float','true_false','unique_choice','multiple_choice','text') | NO | | NULL | |
|
|
|
|
|
| Shuffle | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
| Stem | text | NO | | NULL | |
|
|
|
|
|
| Feedback | text | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+----------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0.00 sec)
|
2020-05-13 00:28:32 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exa_set_questions ("
|
|
|
|
|
"QstCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"SetCod INT NOT NULL,"
|
2020-06-17 20:20:16 +02:00
|
|
|
|
"Invalid ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
2020-05-13 00:28:32 +02:00
|
|
|
|
"AnsType ENUM ('int','float','true_false','unique_choice','multiple_choice','text') NOT NULL,"
|
|
|
|
|
"Shuffle ENUM('N','Y') NOT NULL,"
|
|
|
|
|
"Stem TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Feedback TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"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 *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exa_sets;
|
2020-05-07 12:56:47 +02:00
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| SetCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ExaCod | int(11) | NO | | NULL | |
|
|
|
|
|
| SetInd | int(11) | NO | | NULL | |
|
|
|
|
|
| NumQstsToPrint | int(11) | NO | | 0 | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+----------------+---------------+------+-----+---------+----------------+
|
2020-04-25 01:36:53 +02:00
|
|
|
|
5 rows in set (0.00 sec)
|
2020-04-24 02:49:51 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // ExaSet_MAX_BYTES_TITLE
|
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
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table exam_announcements *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE exam_announcements;
|
2017-03-11 21:32:10 +01:00
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| ExaCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
| CrsFullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Year | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| ExamSession | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| CallDate | datetime | NO | | NULL | |
|
|
|
|
|
| ExamDate | datetime | NO | | NULL | |
|
|
|
|
|
| Duration | time | NO | | NULL | |
|
|
|
|
|
| Place | text | NO | | NULL | |
|
|
|
|
|
| ExamMode | text | NO | | NULL | |
|
|
|
|
|
| Structure | text | NO | | NULL | |
|
|
|
|
|
| DocRequired | text | NO | | NULL | |
|
|
|
|
|
| MatRequired | text | NO | | NULL | |
|
|
|
|
|
| MatAllowed | text | NO | | NULL | |
|
|
|
|
|
| OtherInfo | text | NO | | NULL | |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
17 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS exam_announcements ("
|
2017-03-11 21:32:10 +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,"
|
2021-02-11 22:57:09 +01:00
|
|
|
|
"CrsFullName VARCHAR(2047) NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
2017-03-11 21:32:10 +01:00
|
|
|
|
"Year TINYINT NOT NULL,"
|
2020-04-20 01:26:46 +02:00
|
|
|
|
"ExamSession VARCHAR(2047) NOT NULL," // ExaAnn_MAX_BYTES_SESSION
|
2017-03-11 21:32:10 +01:00
|
|
|
|
"CallDate DATETIME NOT NULL,"
|
|
|
|
|
"ExamDate DATETIME NOT NULL,"
|
|
|
|
|
"Duration TIME NOT NULL,"
|
|
|
|
|
"Place TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"ExamMode TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Structure TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"DocRequired TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"MatRequired TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"MatAllowed TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"OtherInfo TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(ExaCod),"
|
|
|
|
|
"INDEX(CrsCod,Status),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table expanded_folders *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE expanded_folders;
|
2015-01-20 18:55:59 +01:00
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
2015-01-24 19:30:44 +01:00
|
|
|
|
| FileBrowser | tinyint(4) | NO | MUL | NULL | |
|
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| WorksUsrCod | int(11) | NO | MUL | NULL | |
|
2015-01-20 18:55:59 +01:00
|
|
|
|
| Path | text | NO | | NULL | |
|
|
|
|
|
| ClickTime | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
2015-01-24 19:30:44 +01:00
|
|
|
|
6 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS expanded_folders ("
|
2017-03-11 22:17:44 +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," // PATH_MAX
|
|
|
|
|
"ClickTime DATETIME NOT NULL,"
|
|
|
|
|
"INDEX(UsrCod,FileBrowser,Cod),"
|
|
|
|
|
"INDEX(FileBrowser,Cod),"
|
|
|
|
|
"INDEX(WorksUsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-04-30 20:15:21 +02:00
|
|
|
|
/***** Table figures *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE figures;
|
2020-05-01 22:56:02 +02:00
|
|
|
|
+-------------+-------------------------------------------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+-------------------------------------------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| Figure | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Scope | enum('Sys','Cty','Ins','Ctr','Deg','Crs') | NO | PRI | Sys | |
|
|
|
|
|
| Cod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| ValueInt | int(11) | NO | | 0 | |
|
|
|
|
|
| ValueDouble | double | NO | | 0 | |
|
|
|
|
|
| LastUpdate | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
|
|
|
|
|
+-------------+-------------------------------------------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
2020-04-30 20:15:21 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS 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,"
|
|
|
|
|
"ValueDouble DOUBLE PRECISION NOT NULL,"
|
2020-05-01 19:15:59 +02:00
|
|
|
|
"LastUpdate TIMESTAMP,"
|
|
|
|
|
"UNIQUE INDEX(Figure,Scope,Cod))");
|
2020-04-30 20:15:21 +02:00
|
|
|
|
|
2015-01-21 01:34:38 +01:00
|
|
|
|
/***** Table file_browser_last *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE file_browser_last;
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| FileBrowser | tinyint(4) | NO | PRI | NULL | |
|
|
|
|
|
| Cod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| LastClick | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS file_browser_last ("
|
2017-03-11 22:17:44 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"FileBrowser TINYINT NOT NULL,"
|
|
|
|
|
"Cod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"LastClick DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,FileBrowser,Cod))");
|
2015-01-21 01:34:38 +01:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table file_browser_size *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE file_browser_size;
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| FileBrowser | tinyint(4) | NO | PRI | NULL | |
|
2015-01-27 20:50:44 +01:00
|
|
|
|
| Cod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| ZoneUsrCod | int(11) | NO | PRI | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| NumLevels | int(11) | NO | | NULL | |
|
|
|
|
|
| NumFolders | int(11) | NO | | NULL | |
|
|
|
|
|
| NumFiles | int(11) | NO | | NULL | |
|
|
|
|
|
| TotalSize | bigint(20) | NO | | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
2015-01-27 20:50:44 +01:00
|
|
|
|
7 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS file_browser_size ("
|
2017-03-11 22:17:44 +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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-05-13 02:12:11 +02:00
|
|
|
|
/***** Table file_cache *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE file_cache;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| SessionId | char(43) | NO | MUL | NULL | |
|
|
|
|
|
| PrivPath | text | NO | | NULL | |
|
|
|
|
|
| TmpPubDir | text | NO | | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS file_cache ("
|
|
|
|
|
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
2020-05-17 22:16:39 +02:00
|
|
|
|
"PrivPath VARCHAR(4096) COLLATE latin1_bin NOT NULL," // PATH_MAX
|
|
|
|
|
"TmpPubDir VARCHAR(4096) COLLATE latin1_bin NOT NULL," // PATH_MAX
|
|
|
|
|
"UNIQUE INDEX(SessionId))");
|
2020-05-13 02:12:11 +02:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table file_view *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE file_view;
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| FilCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| NumViews | int(11) | NO | | 0 | |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS file_view ("
|
2017-03-11 22:17:44 +01:00
|
|
|
|
"FilCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"NumViews INT NOT NULL DEFAULT 0,"
|
2015-12-28 16:00:01 +01:00
|
|
|
|
"UNIQUE INDEX(FilCod,UsrCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table files *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE files;
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| FilCod | int(11) | NO | PRI | NULL | auto_increment |
|
2015-01-25 00:58:21 +01:00
|
|
|
|
| FileBrowser | tinyint(4) | NO | MUL | NULL | |
|
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| ZoneUsrCod | int(11) | NO | MUL | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| PublisherUsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| FileType | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| Path | text | NO | | NULL | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Public | enum('N','Y') | NO | | N | |
|
|
|
|
|
| License | tinyint(4) | NO | | 0 | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
2015-01-25 00:58:21 +01:00
|
|
|
|
10 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS files ("
|
2017-03-11 22:17:44 +01:00
|
|
|
|
"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," // PATH_MAX
|
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2019-02-13 15:06:02 +01:00
|
|
|
|
/***** Table firewall_banned *****/
|
2019-02-13 13:32:11 +01:00
|
|
|
|
/*
|
2019-02-13 15:06:02 +01:00
|
|
|
|
mysql> DESCRIBE firewall_banned;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| IP | char(15) | NO | MUL | NULL | |
|
|
|
|
|
| BanTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| UnbanTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS firewall_banned ("
|
|
|
|
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
|
|
|
|
"BanTime DATETIME NOT NULL,"
|
|
|
|
|
"UnbanTime DATETIME NOT NULL,"
|
|
|
|
|
"INDEX(IP,UnbanTime),"
|
|
|
|
|
"INDEX(BanTime),"
|
|
|
|
|
"INDEX(UnbanTime));");
|
|
|
|
|
|
|
|
|
|
/***** Table firewall_log *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE firewall_log;
|
2019-02-13 13:32:11 +01:00
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| ClickTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| IP | char(15) | NO | MUL | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2019-02-13 15:06:02 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS firewall_log ("
|
2019-02-13 13:32:11 +01:00
|
|
|
|
"ClickTime DATETIME NOT NULL,"
|
|
|
|
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
|
|
|
|
"INDEX(ClickTime),"
|
|
|
|
|
"INDEX(IP))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table forum_disabled_post *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE forum_disabled_post;
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| PstCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| DisableTime | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS forum_disabled_post ("
|
2017-03-11 22:17:44 +01:00
|
|
|
|
"PstCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"DisableTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(PstCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table forum_post *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE forum_post;
|
2019-03-19 01:41:27 +01:00
|
|
|
|
+-----------+----------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+----------------+
|
|
|
|
|
| PstCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ThrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| ModifTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
| Subject | text | NO | | NULL | |
|
|
|
|
|
| Content | longtext | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+-----------+----------+------+-----+---------+----------------+
|
|
|
|
|
9 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS forum_post ("
|
2017-03-11 22:17:44 +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,"
|
2019-03-02 21:49:11 +01:00
|
|
|
|
"Subject TEXT NOT NULL," // Cns_MAX_BYTES_SUBJECT
|
|
|
|
|
"Content LONGTEXT NOT NULL," // Cns_MAX_BYTES_LONG_TEXT
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
2017-03-11 22:17:44 +01:00
|
|
|
|
"UNIQUE INDEX(PstCod),"
|
|
|
|
|
"INDEX(ThrCod),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(CreatTime),"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"INDEX(ModifTime),"
|
|
|
|
|
"INDEX(MedCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table forum_thr_clip *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE forum_thr_clip;
|
|
|
|
|
+------------+-----------+------+-----+-------------------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+-----------+------+-----+-------------------+-------+
|
|
|
|
|
| ThrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | UNI | NULL | |
|
|
|
|
|
| TimeInsert | timestamp | NO | | CURRENT_TIMESTAMP | |
|
|
|
|
|
+------------+-----------+------+-----+-------------------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS forum_thr_clip ("
|
2017-03-12 12:52:40 +01:00
|
|
|
|
"ThrCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"TimeInsert TIMESTAMP NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(ThrCod),"
|
|
|
|
|
"UNIQUE INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table forum_thr_read *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE forum_thr_read;
|
|
|
|
|
+----------+----------+------+-----+---------------------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+----------+------+-----+---------------------+-------+
|
|
|
|
|
| ThrCod | int(11) | NO | PRI | 0 | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| ReadTime | datetime | NO | | 0000-00-00 00:00:00 | |
|
|
|
|
|
+----------+----------+------+-----+---------------------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS forum_thr_read ("
|
2017-03-12 12:52:40 +01:00
|
|
|
|
"ThrCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"ReadTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(ThrCod,UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table forum_thread *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE forum_thread;
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| ThrCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ForumType | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| Location | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| FirstPstCod | int(11) | NO | UNI | NULL | |
|
|
|
|
|
| LastPstCod | int(11) | NO | UNI | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS forum_thread ("
|
2017-03-12 12:52:40 +01:00
|
|
|
|
"ThrCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"ForumType TINYINT NOT NULL,"
|
|
|
|
|
"Location INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"FirstPstCod INT NOT NULL,"
|
|
|
|
|
"LastPstCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(ThrCod),"
|
|
|
|
|
"INDEX(ForumType),"
|
|
|
|
|
"INDEX(Location),"
|
|
|
|
|
"UNIQUE INDEX(FirstPstCod),"
|
|
|
|
|
"UNIQUE INDEX(LastPstCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table gam_games *****/
|
2017-07-09 20:31:11 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE gam_games;
|
2020-02-19 21:54:23 +01:00
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| GamCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| MaxGrade | double | NO | | 1 | |
|
|
|
|
|
| Visibility | int(11) | NO | | 31 | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0.00 sec)
|
2017-07-09 20:31:11 +02:00
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS gam_games ("
|
2017-07-09 20:31:11 +02:00
|
|
|
|
"GamCod INT NOT NULL AUTO_INCREMENT,"
|
2019-05-20 08:52:07 +02:00
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
2017-07-09 20:31:11 +02:00
|
|
|
|
"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," // Scale from score [0...num.answers] to grade [0...MaxGrade]
|
2020-02-18 15:40:04 +01:00
|
|
|
|
"Visibility INT NOT NULL DEFAULT 0x1f,"
|
2019-05-28 15:06:53 +02:00
|
|
|
|
"Title VARCHAR(2047) NOT NULL," // Gam_MAX_BYTES_TITLE
|
2017-07-09 20:31:11 +02:00
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(GamCod),"
|
2019-05-20 08:52:07 +02:00
|
|
|
|
"INDEX(CrsCod))");
|
2017-07-09 20:31:11 +02:00
|
|
|
|
|
2020-04-22 22:40:07 +02:00
|
|
|
|
/***** Table gam_questions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE gam_questions;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
2020-04-27 00:06:58 +02:00
|
|
|
|
| GamCod | int(11) | NO | PRI | NULL | |
|
2020-04-27 00:25:02 +02:00
|
|
|
|
| QstInd | int(11) | NO | PRI | NULL | |
|
2020-04-27 00:06:58 +02:00
|
|
|
|
| QstCod | int(11) | NO | | NULL | |
|
2020-04-22 22:40:07 +02:00
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
2020-04-27 00:06:58 +02:00
|
|
|
|
3 rows in set (0.00 sec)
|
2020-04-22 22:40:07 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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))");
|
2020-04-22 22:40:07 +02:00
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_answers *****/
|
2017-07-09 20:31:11 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_answers;
|
2019-07-15 12:41:23 +02:00
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | PRI | NULL | |
|
2019-09-24 01:41:51 +02:00
|
|
|
|
| NumOpt | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| AnsInd | tinyint(4) | NO | | NULL | |
|
2019-07-15 12:41:23 +02:00
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
2019-09-24 01:41:51 +02:00
|
|
|
|
5 rows in set (0.00 sec)
|
2017-07-09 20:31:11 +02:00
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_answers ("
|
2019-07-15 12:41:23 +02:00
|
|
|
|
"MchCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
2019-05-30 12:57:31 +02:00
|
|
|
|
"QstInd INT NOT NULL,"
|
2019-09-24 01:41:51 +02:00
|
|
|
|
"NumOpt TINYINT NOT NULL," // Number of button on screen (Always ordered: 0,1,2,3)
|
|
|
|
|
"AnsInd TINYINT NOT NULL," // Answer index (Can be shuffled: 0,3,1,2)
|
2019-07-15 12:41:23 +02:00
|
|
|
|
"UNIQUE INDEX(MchCod,UsrCod,QstInd))");
|
2017-07-09 20:31:11 +02:00
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_groups *****/
|
2017-07-09 20:31:11 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_groups;
|
2017-07-09 20:31:11 +02:00
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
2019-05-28 15:06:53 +02:00
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
2017-07-09 20:31:11 +02:00
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.01 sec)
|
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_groups ("
|
2019-05-28 15:06:53 +02:00
|
|
|
|
"MchCod INT NOT NULL,"
|
2017-07-09 20:31:11 +02:00
|
|
|
|
"GrpCod INT NOT NULL,"
|
2019-05-28 15:06:53 +02:00
|
|
|
|
"UNIQUE INDEX(MchCod,GrpCod))");
|
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_matches *****/
|
2019-05-28 15:06:53 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_matches;
|
2019-12-10 21:52:22 +01:00
|
|
|
|
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| GamCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | | 0 | |
|
|
|
|
|
| QstCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Showing | enum('start','stem','answers','results','end') | NO | | start | |
|
2019-12-12 18:24:23 +01:00
|
|
|
|
| Countdown | int(11) | NO | | -1 | |
|
2019-12-10 21:52:22 +01:00
|
|
|
|
| NumCols | int(11) | NO | | 1 | |
|
|
|
|
|
| ShowQstResults | enum('N','Y') | NO | | N | |
|
|
|
|
|
| ShowUsrResults | enum('N','Y') | NO | | N | |
|
|
|
|
|
+----------------+------------------------------------------------+------+-----+---------+----------------+
|
2019-12-12 18:24:23 +01:00
|
|
|
|
13 rows in set (0.00 sec)
|
2019-05-28 15:06:53 +02:00
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_matches ("
|
2019-05-28 15:06:53 +02:00
|
|
|
|
"MchCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"GamCod INT NOT NULL,"
|
2019-05-29 01:14:56 +02:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
2019-05-28 15:06:53 +02:00
|
|
|
|
"StartTime DATETIME NOT NULL,"
|
|
|
|
|
"EndTime DATETIME NOT NULL,"
|
2020-11-25 01:50:13 +01:00
|
|
|
|
"Title VARCHAR(2047) NOT NULL," // Mch_MAX_BYTES_TITLE
|
2019-05-20 12:26:15 +02:00
|
|
|
|
"QstInd INT NOT NULL DEFAULT 0,"
|
2019-05-20 19:47:17 +02:00
|
|
|
|
"QstCod INT NOT NULL DEFAULT -1,"
|
2019-12-10 21:52:22 +01:00
|
|
|
|
"Showing ENUM('start','stem','answers','results','end') NOT NULL DEFAULT 'start',"
|
2019-12-12 18:24:23 +01:00
|
|
|
|
"Countdown INT NOT NULL DEFAULT -1,"
|
2019-10-22 23:42:22 +02:00
|
|
|
|
"NumCols INT NOT NULL DEFAULT 1,"
|
2019-09-25 21:58:12 +02:00
|
|
|
|
"ShowQstResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"ShowUsrResults ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
2019-05-29 01:14:56 +02:00
|
|
|
|
"UNIQUE INDEX(MchCod),"
|
2019-11-20 15:23:52 +01:00
|
|
|
|
"INDEX(GamCod))");
|
2019-05-20 12:26:15 +02:00
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_playing *****/
|
2019-07-17 18:17:44 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_playing;
|
2019-07-17 18:17:44 +02:00
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| TS | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
|
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
2 rows in set (0.01 sec)
|
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_playing ("
|
2019-07-17 18:17:44 +02:00
|
|
|
|
"MchCod INT NOT NULL,"
|
|
|
|
|
"TS TIMESTAMP,"
|
|
|
|
|
"UNIQUE INDEX(MchCod))");
|
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_players *****/
|
2019-07-16 22:33:28 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_players;
|
2019-07-16 22:33:28 +02:00
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| TS | timestamp | NO | | CURRENT_TIMESTAMP | on update CURRENT_TIMESTAMP |
|
|
|
|
|
+--------+-----------+------+-----+-------------------+-----------------------------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_players ("
|
2019-07-16 22:33:28 +02:00
|
|
|
|
"MchCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"TS TIMESTAMP,"
|
|
|
|
|
"UNIQUE INDEX(MchCod,UsrCod))");
|
|
|
|
|
|
2019-09-23 19:17:12 +02:00
|
|
|
|
/***** Table mch_indexes *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE mch_indexes;
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Indexes | text | NO | | NULL | |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_indexes ("
|
|
|
|
|
"MchCod INT NOT NULL,"
|
|
|
|
|
"QstInd INT NOT NULL,"
|
2020-05-09 01:37:00 +02:00
|
|
|
|
"Indexes TEXT NOT NULL," // Tst_MAX_BYTES_INDEXES_ONE_QST
|
2019-09-23 19:17:12 +02:00
|
|
|
|
"UNIQUE INDEX(MchCod,QstInd))");
|
|
|
|
|
|
2019-09-22 13:54:11 +02:00
|
|
|
|
/***** Table mch_results *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE mch_results;
|
2019-09-23 09:03:55 +02:00
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| NumQsts | int(11) | NO | | 0 | |
|
|
|
|
|
| NumQstsNotBlank | int(11) | NO | | 0 | |
|
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
7 rows in set (0.00 sec)
|
2019-09-22 13:54:11 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_results ("
|
|
|
|
|
"MchCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
2019-09-23 09:03:55 +02:00
|
|
|
|
"StartTime DATETIME NOT NULL," // Time this user started to answer
|
|
|
|
|
"EndTime DATETIME NOT NULL," // Time this user finished to answer
|
2019-09-22 13:54:11 +02:00
|
|
|
|
"NumQsts INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"NumQstsNotBlank INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Score DOUBLE PRECISION NOT NULL DEFAULT 0,"
|
|
|
|
|
"UNIQUE INDEX(MchCod,UsrCod))");
|
|
|
|
|
|
2019-09-17 01:37:07 +02:00
|
|
|
|
/***** Table mch_times *****/
|
2019-08-03 15:16:41 +02:00
|
|
|
|
/*
|
2019-09-17 01:37:07 +02:00
|
|
|
|
mysql> DESCRIBE mch_times;
|
2019-08-03 15:16:41 +02:00
|
|
|
|
+-------------+---------+------+-----+----------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+---------+------+-----+----------+-------+
|
|
|
|
|
| MchCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| ElapsedTime | time | NO | | 00:00:00 | |
|
|
|
|
|
+-------------+---------+------+-----+----------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2019-09-17 01:37:07 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mch_times ("
|
2019-08-03 15:16:41 +02:00
|
|
|
|
"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
|
|
|
|
/***** Table hidden_params *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE hidden_params;
|
|
|
|
|
+------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| SessionId | char(43) | NO | MUL | NULL | |
|
2019-04-22 01:06:48 +02:00
|
|
|
|
| ParamName | varchar(255) | NO | | NULL | |
|
|
|
|
|
| ParamValue | longtext | NO | | NULL | |
|
|
|
|
|
+------------+--------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.01 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
2019-04-22 01:06:48 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS hidden_params ("
|
|
|
|
|
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
|
|
|
|
"ParamName VARCHAR(255) NOT NULL,"
|
|
|
|
|
"ParamValue LONGTEXT NOT NULL,"
|
|
|
|
|
"INDEX(SessionId))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table holidays *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE holidays;
|
2017-03-12 16:39:16 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| HldCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| PlcCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| HldTyp | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| StartDate | date | NO | | NULL | |
|
|
|
|
|
| EndDate | date | NO | | NULL | |
|
|
|
|
|
| Name | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
7 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS holidays ("
|
2017-03-12 16:39:16 +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,"
|
|
|
|
|
"Name VARCHAR(2047) NOT NULL," // Hld_MAX_BYTES_HOLIDAY_NAME
|
|
|
|
|
"UNIQUE INDEX (HldCod),"
|
|
|
|
|
"INDEX(InsCod),"
|
|
|
|
|
"INDEX(PlcCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-07 21:52:56 +01:00
|
|
|
|
/***** Table ins_instits *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
2021-03-07 21:52:56 +01:00
|
|
|
|
mysql> DESCRIBE ins_instits;
|
2017-03-12 19:43:17 +01:00
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| InsCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CtyCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| RequesterUsrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
7 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
2021-03-07 21:52:56 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ins_instits ("
|
2017-03-12 19:43:17 +01:00
|
|
|
|
"InsCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CtyCod INT NOT NULL,"
|
|
|
|
|
"Status TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"RequesterUsrCod INT NOT NULL DEFAULT -1,"
|
2021-02-11 22:57:09 +01:00
|
|
|
|
"ShortName VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) COLLATE latin1_spanish_ci NOT NULL," // Cns_HIERARCHY_MAX_BYTES_FULL_NAME
|
2017-03-12 19:43:17 +01:00
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(InsCod),"
|
|
|
|
|
"INDEX(CtyCod),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table links *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE links;
|
2017-03-12 19:54:12 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| LnkCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| WWW | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS links ("
|
2017-03-12 19:54:12 +01:00
|
|
|
|
"LnkCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Lnk_MAX_BYTES_LINK_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Lnk_MAX_BYTES_LINK_FULL_NAME
|
|
|
|
|
"WWW VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(LnkCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-04-05 18:32:56 +02:00
|
|
|
|
/***** Table log *****/
|
2016-05-01 13:23:37 +02:00
|
|
|
|
/*
|
2020-04-05 18:32:56 +02:00
|
|
|
|
mysql> DESCRIBE log;
|
2014-12-01 23:55:08 +01:00
|
|
|
|
+----------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| ActCod | int(11) | NO | MUL | -1 | |
|
2015-10-10 22:16:46 +02:00
|
|
|
|
| CtyCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| DegCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Role | tinyint(4) | NO | | NULL | |
|
2020-04-05 18:32:56 +02:00
|
|
|
|
| ClickTime | datetime | NO | PRI | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| TimeToGenerate | int(11) | NO | | NULL | |
|
|
|
|
|
| TimeToSend | int(11) | NO | | NULL | |
|
|
|
|
|
| IP | char(15) | NO | | NULL | |
|
|
|
|
|
+----------------+------------+------+-----+---------+----------------+
|
2020-04-05 18:32:56 +02:00
|
|
|
|
13 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log ("
|
2017-03-12 21:15:32 +01:00
|
|
|
|
"LogCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"ActCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"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,"
|
|
|
|
|
"UsrCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Role TINYINT NOT NULL,"
|
|
|
|
|
"ClickTime DATETIME NOT NULL,"
|
|
|
|
|
"TimeToGenerate INT NOT NULL,"
|
|
|
|
|
"TimeToSend INT NOT NULL,"
|
2020-04-05 18:32:56 +02:00
|
|
|
|
"IP CHAR(15) NOT NULL,"
|
|
|
|
|
"PRIMARY KEY(LogCod,ClickTime),"
|
|
|
|
|
"INDEX(ActCod),"
|
|
|
|
|
"INDEX(CtyCod),"
|
|
|
|
|
"INDEX(InsCod),"
|
|
|
|
|
"INDEX(CtrCod),"
|
|
|
|
|
"INDEX(DegCod),"
|
|
|
|
|
"INDEX(CrsCod),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"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"
|
|
|
|
|
")");
|
|
|
|
|
|
|
|
|
|
/***** Table log_banners *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE log_banners;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| BanCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_banners ("
|
|
|
|
|
"LogCod INT NOT NULL,"
|
|
|
|
|
"BanCod INT NOT NULL,"
|
2017-03-12 21:15:32 +01:00
|
|
|
|
"UNIQUE INDEX(LogCod),"
|
2020-04-05 18:32:56 +02:00
|
|
|
|
"INDEX(BanCod))");
|
|
|
|
|
|
|
|
|
|
/***** Table log_comments *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE log_comments;
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Comments | text | NO | | NULL | |
|
|
|
|
|
+----------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("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 *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE log_recent;
|
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| ActCod | int(11) | NO | MUL | -1 | |
|
2015-10-10 22:16:46 +02:00
|
|
|
|
| CtyCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| DegCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Role | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| ClickTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| TimeToGenerate | int(11) | NO | | NULL | |
|
|
|
|
|
| TimeToSend | int(11) | NO | | NULL | |
|
|
|
|
|
| IP | char(15) | NO | | NULL | |
|
|
|
|
|
+----------------+------------+------+-----+---------+-------+
|
2015-10-10 22:16:46 +02:00
|
|
|
|
13 rows in set (0.01 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_recent ("
|
2017-03-12 21:15:32 +01:00
|
|
|
|
"LogCod INT NOT NULL,"
|
|
|
|
|
"ActCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"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,"
|
|
|
|
|
"UsrCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Role TINYINT NOT NULL,"
|
|
|
|
|
"ClickTime DATETIME NOT NULL,"
|
|
|
|
|
"TimeToGenerate INT NOT NULL,"
|
|
|
|
|
"TimeToSend INT NOT NULL,"
|
2019-02-13 13:32:11 +01:00
|
|
|
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
2017-03-12 21:15:32 +01:00
|
|
|
|
"UNIQUE INDEX(LogCod),"
|
|
|
|
|
"INDEX(ActCod),"
|
|
|
|
|
"INDEX(CtyCod),"
|
|
|
|
|
"INDEX(InsCod),"
|
|
|
|
|
"INDEX(CtrCod),"
|
|
|
|
|
"INDEX(DegCod),"
|
|
|
|
|
"INDEX(CrsCod),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(ClickTime,Role))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2017-02-27 01:41:46 +01:00
|
|
|
|
/***** Table log_search *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE log_search;
|
2017-03-12 21:15:32 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| SearchStr | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
2017-02-27 01:41:46 +01:00
|
|
|
|
2 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_search ("
|
2017-03-12 21:15:32 +01:00
|
|
|
|
"LogCod INT NOT NULL,"
|
|
|
|
|
"SearchStr VARCHAR(2047) NOT NULL," // Sch_MAX_BYTES_STRING_TO_FIND
|
|
|
|
|
"UNIQUE INDEX(LogCod))");
|
2017-02-27 01:41:46 +01:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table log_ws *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE log_ws;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| LogCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| PlgCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| FunCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_ws ("
|
2017-03-13 02:19:49 +01:00
|
|
|
|
"LogCod INT NOT NULL,"
|
|
|
|
|
"PlgCod INT NOT NULL,"
|
|
|
|
|
"FunCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(LogCod),"
|
|
|
|
|
"INDEX(PlgCod),"
|
|
|
|
|
"INDEX(FunCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table mail_domains *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE mail_domains;
|
2017-03-13 02:19:49 +01:00
|
|
|
|
+--------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| MaiCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Domain | varchar(255) | NO | UNI | NULL | |
|
|
|
|
|
| Info | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+--------+---------------+------+-----+---------+----------------+
|
|
|
|
|
3 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS mail_domains ("
|
2017-03-13 02:19:49 +01:00
|
|
|
|
"MaiCod INT NOT NULL AUTO_INCREMENT,"
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"Domain VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_EMAIL_ADDRESS
|
2017-03-13 02:19:49 +01:00
|
|
|
|
"Info VARCHAR(2047) NOT NULL," // Mai_MAX_BYTES_MAIL_INFO
|
|
|
|
|
"UNIQUE INDEX(MaiCod),"
|
|
|
|
|
"UNIQUE INDEX(Domain))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table marks_properties *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE marks_properties;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| FilCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Header | int(11) | NO | | NULL | |
|
|
|
|
|
| Footer | int(11) | NO | | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS marks_properties ("
|
2017-03-13 11:08:41 +01:00
|
|
|
|
"FilCod INT NOT NULL,"
|
|
|
|
|
"Header INT NOT NULL,"
|
|
|
|
|
"Footer INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(FilCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2019-03-18 15:42:22 +01:00
|
|
|
|
/***** Table media *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE media;
|
2019-03-21 20:04:01 +01:00
|
|
|
|
+--------+---------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| MedCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Type | enum('none','jpg','gif','mp4','webm','ogg','youtube','embed') | NO | MUL | none | |
|
|
|
|
|
| Name | varchar(43) | NO | | | |
|
|
|
|
|
| URL | varchar(255) | NO | | | |
|
|
|
|
|
| Title | varchar(2047) | NO | | | |
|
|
|
|
|
+--------+---------------------------------------------------------------+------+-----+---------+----------------+
|
2019-03-19 01:41:27 +01:00
|
|
|
|
5 rows in set (0.01 sec)
|
2019-03-18 15:42:22 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS media ("
|
|
|
|
|
"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-18 15:42:22 +01:00
|
|
|
|
"Name VARCHAR(43) NOT NULL DEFAULT ''," // Med_BYTES_NAME
|
|
|
|
|
"URL VARCHAR(255) NOT NULL DEFAULT ''," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"Title VARCHAR(2047) NOT NULL DEFAULT ''," // Med_MAX_BYTES_TITLE
|
|
|
|
|
"UNIQUE INDEX(MedCod),"
|
|
|
|
|
"INDEX(Type))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table msg_banned *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_banned;
|
|
|
|
|
+------------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------+------+-----+---------+-------+
|
|
|
|
|
| FromUsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| ToUsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+------------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_banned ("
|
2017-03-13 11:08:41 +01:00
|
|
|
|
"FromUsrCod INT NOT NULL,"
|
|
|
|
|
"ToUsrCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(FromUsrCod,ToUsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_content *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_content;
|
2019-03-19 01:41:27 +01:00
|
|
|
|
+---------+----------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+----------+------+-----+---------+----------------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Subject | text | NO | MUL | NULL | |
|
|
|
|
|
| Content | longtext | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+---------+----------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_content ("
|
2017-03-13 11:08:41 +01:00
|
|
|
|
"MsgCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"Subject TEXT NOT NULL,"
|
|
|
|
|
"Content LONGTEXT NOT NULL,"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
2017-03-13 11:08:41 +01:00
|
|
|
|
"UNIQUE INDEX(MsgCod),"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"FULLTEXT(Subject,Content),"
|
2020-01-30 20:47:00 +01:00
|
|
|
|
"INDEX(MedCod)) ENGINE = MYISAM");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_content_deleted *****/
|
|
|
|
|
/*
|
2017-03-13 11:08:41 +01:00
|
|
|
|
mysql> DESCRIBE msg_content_deleted;
|
2019-03-19 01:41:27 +01:00
|
|
|
|
+---------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+----------+------+-----+---------+-------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Subject | text | NO | MUL | NULL | |
|
|
|
|
|
| Content | longtext | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+---------+----------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_content_deleted ("
|
2017-03-13 11:12:25 +01:00
|
|
|
|
"MsgCod INT NOT NULL,"
|
|
|
|
|
"Subject TEXT NOT NULL,"
|
|
|
|
|
"Content LONGTEXT NOT NULL,"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
2017-03-13 11:12:25 +01:00
|
|
|
|
"UNIQUE INDEX(MsgCod),"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"FULLTEXT(Subject,Content),"
|
2020-01-30 20:47:00 +01:00
|
|
|
|
"INDEX(MedCod)) ENGINE = MYISAM");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_rcv *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_rcv;
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | 0 | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Notified | enum('N','Y') | NO | MUL | N | |
|
|
|
|
|
| Open | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Replied | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Expanded | enum('N','Y') | NO | | N | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_rcv ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_rcv_deleted *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_rcv_deleted;
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Notified | enum('N','Y') | NO | MUL | N | |
|
|
|
|
|
| Open | enum('N','Y') | NO | | N | |
|
|
|
|
|
| Replied | enum('N','Y') | NO | | N | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_rcv_deleted ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_snt *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_snt;
|
|
|
|
|
+-----------+---------------+------+-----+---------------------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------------------+-------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Expanded | enum('N','Y') | NO | | N | |
|
|
|
|
|
| CreatTime | datetime | NO | MUL | 0000-00-00 00:00:00 | |
|
|
|
|
|
+-----------+---------------+------+-----+---------------------+-------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_snt ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table msg_snt_deleted *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE msg_snt_deleted;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| MsgCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS msg_snt_deleted ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table notices *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE notices;
|
|
|
|
|
+-----------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+------------+------+-----+---------+----------------+
|
|
|
|
|
| NotCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| Content | text | NO | | NULL | |
|
|
|
|
|
| Status | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
+-----------+------------+------+-----+---------+----------------+
|
|
|
|
|
7 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS notices ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"NotCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"CreatTime DATETIME NOT NULL,"
|
|
|
|
|
"Content TEXT NOT NULL,"
|
|
|
|
|
"Status TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"NumNotif INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"UNIQUE INDEX(NotCod),"
|
|
|
|
|
"INDEX(CrsCod,Status),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(CreatTime),"
|
|
|
|
|
"INDEX(Status))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table notices_deleted *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE notices_deleted;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| NotCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| Content | text | NO | | NULL | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS notices_deleted ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"NotCod INT NOT NULL,"
|
|
|
|
|
"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),"
|
|
|
|
|
"INDEX(CrsCod),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(CreatTime))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table notif *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE notif;
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| NtfCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| NotifyEvent | tinyint(4) | NO | MUL | NULL | |
|
|
|
|
|
| ToUsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| FromUsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| InsCod | int(11) | NO | | -1 | |
|
|
|
|
|
| CtrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| DegCod | int(11) | NO | | -1 | |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| TimeNotif | datetime | NO | MUL | NULL | |
|
|
|
|
|
| Status | tinyint(4) | NO | | 0 | |
|
|
|
|
|
+-------------+------------+------+-----+---------+----------------+
|
|
|
|
|
11 rows in set (0.02 sec)
|
|
|
|
|
*/
|
|
|
|
|
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS notif ("
|
2017-03-13 13:17:53 +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(CrsCod),"
|
|
|
|
|
"INDEX(TimeNotif))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table pending_emails *****/
|
|
|
|
|
/*
|
2017-03-13 13:17:53 +01:00
|
|
|
|
mysql> DESCRIBE pending_emails;
|
2014-12-01 23:55:08 +01:00
|
|
|
|
+-------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+--------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
2017-03-13 13:17:53 +01:00
|
|
|
|
| E_mail | varchar(255) | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| MailKey | char(43) | NO | PRI | NULL | |
|
|
|
|
|
| DateAndTime | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+--------------+------+-----+---------+-------+
|
2017-03-13 13:17:53 +01:00
|
|
|
|
4 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_emails ("
|
2017-03-13 13:17:53 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL," // Cns_MAX_CHARS_EMAIL_ADDRESS
|
|
|
|
|
"MailKey CHAR(43) COLLATE latin1_bin NOT NULL," // Mai_LENGTH_EMAIL_CONFIRM_KEY
|
|
|
|
|
"DateAndTime DATETIME NOT NULL,"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"UNIQUE INDEX(MailKey))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table pending_passwd *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE pending_passwd;
|
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| PendingPassword | char(86) | NO | | NULL | |
|
|
|
|
|
| DateAndTime | datetime | NO | | NULL | |
|
|
|
|
|
+-----------------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_passwd ("
|
2017-03-13 13:33:45 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
2017-03-13 14:22:36 +01:00
|
|
|
|
"PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
|
2017-03-13 13:33:45 +01:00
|
|
|
|
"DateAndTime DATETIME NOT NULL,"
|
|
|
|
|
"PRIMARY KEY (UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table places *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE places;
|
2017-03-13 13:33:45 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| PlcCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS places ("
|
2017-03-13 13:33:45 +01:00
|
|
|
|
"PlcCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"InsCod INT NOT NULL,"
|
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Plc_MAX_BYTES_PLACE_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Plc_MAX_BYTES_PLACE_FULL_NAME
|
|
|
|
|
"UNIQUE INDEX(PlcCod),"
|
|
|
|
|
"INDEX(InsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table plugins *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE plugins;
|
2017-03-13 13:43:37 +01:00
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| PlgCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Name | varchar(511) | NO | | NULL | |
|
|
|
|
|
| Description | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Logo | varchar(31) | NO | | NULL | |
|
|
|
|
|
| AppKey | varchar(31) | NO | | NULL | |
|
|
|
|
|
| URL | varchar(255) | NO | | NULL | |
|
|
|
|
|
| IP | char(15) | NO | | NULL | |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
7 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS plugins ("
|
2017-03-13 13:43:37 +01:00
|
|
|
|
"PlgCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"Name VARCHAR(511) NOT NULL," // Plg_MAX_BYTES_PLUGIN_NAME
|
|
|
|
|
"Description VARCHAR(2047) NOT NULL," // Plg_MAX_BYTES_PLUGIN_DESCRIPTION
|
|
|
|
|
"Logo VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_LOGO
|
|
|
|
|
"AppKey VARCHAR(31) NOT NULL," // Plg_MAX_BYTES_PLUGIN_APP_KEY
|
|
|
|
|
"URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"IP CHAR(15) NOT NULL," // Cns_MAX_BYTES_IP
|
|
|
|
|
"UNIQUE INDEX(PlgCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-02-20 23:48:48 +01:00
|
|
|
|
/***** Table prg_items *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE prg_items;
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
2020-02-26 00:26:07 +01:00
|
|
|
|
| ItmCod | int(11) | NO | PRI | NULL | auto_increment |
|
2020-02-27 23:44:21 +01:00
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
2020-02-26 00:26:07 +01:00
|
|
|
|
| ItmInd | int(11) | NO | | 0 | |
|
2020-02-27 00:19:55 +01:00
|
|
|
|
| Level | int(11) | NO | | 1 | |
|
2020-02-20 23:48:48 +01:00
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+----------------+
|
2020-02-27 00:19:55 +01:00
|
|
|
|
10 rows in set (0.00 sec)
|
2020-02-20 23:48:48 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // Prg_MAX_BYTES_PROGRAM_ITEM_TITLE
|
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
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
|
|
|
|
|
2019-10-25 22:48:34 +02:00
|
|
|
|
/***** Table prj_config *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE prj_config;
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| Editable | enum('N','Y') | NO | | Y | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prj_config ("
|
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Editable ENUM('N','Y') NOT NULL DEFAULT 'Y',"
|
|
|
|
|
"UNIQUE INDEX(CrsCod))");
|
|
|
|
|
|
|
|
|
|
/***** Table prj_usr *****/
|
2017-09-17 16:58:09 +02:00
|
|
|
|
/*
|
2017-09-19 16:45:42 +02:00
|
|
|
|
mysql> DESCRIBE prj_usr;
|
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
|
|
|
|
| PrjCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| RoleInProject | tinyint(4) | NO | PRI | 0 | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+---------------+------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0,00 sec)
|
2017-09-17 16:58:09 +02:00
|
|
|
|
*/
|
2017-09-19 16:45:42 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS prj_usr ("
|
2017-09-17 16:58:09 +02:00
|
|
|
|
"PrjCod INT NOT NULL,"
|
2017-09-19 16:45:42 +02:00
|
|
|
|
"RoleInProject TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(PrjCod,RoleInProject,UsrCod))");
|
2017-09-17 16:58:09 +02:00
|
|
|
|
|
|
|
|
|
/***** Table projects *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE projects;
|
2017-10-02 19:34:31 +02:00
|
|
|
|
+-------------+-------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+-------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| PrjCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| DptCod | int(11) | NO | | -1 | |
|
2019-04-17 12:40:04 +02:00
|
|
|
|
| Locked | enum('N','Y') | NO | | N | |
|
2017-10-02 19:34:31 +02:00
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
2019-10-25 22:48:34 +02:00
|
|
|
|
| Assigned | enum('N','Y') | NO | | N | |
|
2017-10-02 19:34:31 +02:00
|
|
|
|
| NumStds | int(11) | NO | | 1 | |
|
|
|
|
|
| Proposal | enum('new','modified','unmodified') | NO | | new | |
|
2017-10-07 22:08:38 +02:00
|
|
|
|
| CreatTime | datetime | NO | | NULL | |
|
|
|
|
|
| ModifTime | datetime | NO | | NULL | |
|
2020-03-09 14:37:55 +01:00
|
|
|
|
| Title | varchar(4095) | NO | | NULL | |
|
2017-10-02 19:34:31 +02:00
|
|
|
|
| Description | text | NO | | NULL | |
|
|
|
|
|
| Knowledge | text | NO | | NULL | |
|
|
|
|
|
| Materials | text | NO | | NULL | |
|
|
|
|
|
| URL | varchar(255) | NO | | NULL | |
|
|
|
|
|
+-------------+-------------------------------------+------+-----+---------+----------------+
|
2019-04-17 12:40:04 +02:00
|
|
|
|
15 rows in set (0.00 sec)
|
2017-09-17 16:58:09 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS projects ("
|
|
|
|
|
"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,"
|
2019-04-17 12:40:04 +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,"
|
2020-03-09 14:37:55 +01:00
|
|
|
|
"Title VARCHAR(4095) NOT NULL," // Prj_MAX_BYTES_PROJECT_TITLE
|
2017-09-19 01:12:05 +02:00
|
|
|
|
"Description TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Knowledge TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Materials TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
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),"
|
2017-09-21 20:48:42 +02:00
|
|
|
|
"INDEX(CrsCod,DptCod))");
|
2017-09-17 16:58:09 +02:00
|
|
|
|
|
2020-04-14 17:15:17 +02:00
|
|
|
|
/***** Table rooms *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE rooms;
|
2020-04-19 02:39:20 +02:00
|
|
|
|
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| RooCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| BldCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Floor | int(11) | NO | | 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') | NO | | no_type | |
|
|
|
|
|
| ShortName | varchar(511) | NO | | NULL | |
|
|
|
|
|
| FullName | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Capacity | int(11) | NO | | NULL | |
|
|
|
|
|
+-----------+-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
8 rows in set (0.00 sec)
|
2020-04-14 17:15:17 +02:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS rooms ("
|
|
|
|
|
"RooCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CtrCod INT NOT NULL,"
|
2020-04-15 02:17:57 +02:00
|
|
|
|
"BldCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"Floor INT NOT NULL DEFAULT 0,"
|
2020-04-19 02:39:20 +02:00
|
|
|
|
"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',"
|
2020-04-14 17:15:17 +02:00
|
|
|
|
"ShortName VARCHAR(511) NOT NULL," // Roo_MAX_BYTES_SHRT_NAME
|
|
|
|
|
"FullName VARCHAR(2047) NOT NULL," // Roo_MAX_BYTES_FULL_NAME
|
|
|
|
|
"Capacity INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(RooCod),"
|
2020-04-15 02:17:57 +02:00
|
|
|
|
"INDEX(CtrCod,BldCod,Floor))");
|
2020-04-14 17:15:17 +02:00
|
|
|
|
|
2020-05-06 21:27:06 +02:00
|
|
|
|
/***** Table room_MAC *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE room_MAC;
|
|
|
|
|
+--------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+------------+------+-----+---------+----------------+
|
|
|
|
|
| RooCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| MAC | bigint(20) | NO | PRI | NULL | |
|
|
|
|
|
+--------+------------+------+-----+---------+----------------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS room_MAC ("
|
2020-09-01 12:49:11 +02:00
|
|
|
|
"RooCod INT NOT NULL,"
|
2020-05-06 21:27:06 +02:00
|
|
|
|
"MAC BIGINT NOT NULL," // 12 digits hexadecimal number
|
|
|
|
|
"UNIQUE INDEX(RooCod,MAC),"
|
|
|
|
|
"UNIQUE INDEX(MAC,RooCod))");
|
|
|
|
|
|
2020-05-25 20:56:51 +02:00
|
|
|
|
/***** Table room_check_in *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE room_check_in;
|
|
|
|
|
+-------------+----------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+----------+------+-----+---------+----------------+
|
|
|
|
|
| ChkCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| RooCod | int(11) | NO | | NULL | |
|
|
|
|
|
| CheckInTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+-------------+----------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS room_check_in ("
|
|
|
|
|
"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))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table sessions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE sessions;
|
2017-03-12 21:15:32 +01:00
|
|
|
|
+----------------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+---------------+------+-----+---------+-------+
|
|
|
|
|
| SessionId | char(43) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Password | char(86) | NO | | NULL | |
|
|
|
|
|
| Role | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| CtyCod | int(11) | NO | | -1 | |
|
|
|
|
|
| InsCod | int(11) | NO | | -1 | |
|
|
|
|
|
| CtrCod | int(11) | NO | | -1 | |
|
|
|
|
|
| DegCod | int(11) | NO | | -1 | |
|
|
|
|
|
| CrsCod | int(11) | NO | | -1 | |
|
|
|
|
|
| LastTime | datetime | NO | | NULL | |
|
|
|
|
|
| LastRefresh | datetime | NO | | NULL | |
|
|
|
|
|
| FirstPubCod | bigint(20) | NO | | 0 | |
|
|
|
|
|
| LastPubCod | bigint(20) | NO | | 0 | |
|
|
|
|
|
| LastPageMsgRcv | int(11) | NO | | 1 | |
|
|
|
|
|
| LastPageMsgSnt | int(11) | NO | | 1 | |
|
|
|
|
|
| WhatToSearch | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| SearchStr | varchar(2047) | NO | | | |
|
|
|
|
|
| SideCols | tinyint(4) | NO | | 3 | |
|
|
|
|
|
+----------------+---------------+------+-----+---------+-------+
|
|
|
|
|
18 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS sessions ("
|
2018-10-17 01:08:42 +02:00
|
|
|
|
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
2017-03-13 14:22:36 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"Password CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
|
|
|
|
|
"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,"
|
|
|
|
|
"LastTime DATETIME NOT NULL,"
|
|
|
|
|
"LastRefresh DATETIME NOT NULL,"
|
|
|
|
|
"FirstPubCod BIGINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"LastPubCod BIGINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"LastPageMsgRcv INT NOT NULL DEFAULT 1,"
|
|
|
|
|
"LastPageMsgSnt INT NOT NULL DEFAULT 1,"
|
|
|
|
|
"WhatToSearch TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"SearchStr VARCHAR(2047) NOT NULL DEFAULT ''," // Sch_MAX_BYTES_STRING_TO_FIND
|
|
|
|
|
"SideCols TINYINT NOT NULL DEFAULT 3,"
|
|
|
|
|
"UNIQUE INDEX(SessionId),"
|
|
|
|
|
"INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table sta_degrees *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE sta_degrees;
|
|
|
|
|
+-----------------------+---------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------------+---------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| DegCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| Sex | enum('unknown','female','male','all') | NO | PRI | all | |
|
|
|
|
|
| NumStds | int(11) | NO | | NULL | |
|
|
|
|
|
| NumStdsWithPhoto | int(11) | NO | | NULL | |
|
|
|
|
|
| TimeAvgPhoto | datetime | NO | MUL | NULL | |
|
|
|
|
|
| TimeToComputeAvgPhoto | int(11) | NO | | -1 | |
|
|
|
|
|
+-----------------------+---------------------------------------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS sta_degrees ("
|
2017-03-13 14:45:05 +01:00
|
|
|
|
"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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table sta_notif *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE sta_notif;
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
| DegCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| NotifyEvent | tinyint(4) | NO | PRI | NULL | |
|
|
|
|
|
| NumEvents | int(11) | NO | | NULL | |
|
|
|
|
|
| NumMails | int(11) | NO | | NULL | |
|
|
|
|
|
+-------------+------------+------+-----+---------+-------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS sta_notif ("
|
2017-03-13 14:45:05 +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))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table svy_answers *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE svy_answers;
|
|
|
|
|
+---------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+------------+------+-----+---------+-------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| AnsInd | tinyint(4) | NO | PRI | NULL | |
|
|
|
|
|
| NumUsrs | int(11) | NO | | 0 | |
|
|
|
|
|
| Answer | text | NO | | NULL | |
|
|
|
|
|
+---------+------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_answers ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"QstCod INT NOT NULL,"
|
|
|
|
|
"AnsInd TINYINT NOT NULL,"
|
|
|
|
|
"NumUsrs INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"Answer TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(QstCod,AnsInd))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table svy_grp *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE svy_grp;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| SvyCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| GrpCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_grp ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"SvyCod INT NOT NULL,"
|
|
|
|
|
"GrpCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(SvyCod,GrpCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table svy_questions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE svy_questions;
|
|
|
|
|
+---------+-----------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+-----------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| SvyCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| QstInd | int(11) | NO | | 0 | |
|
|
|
|
|
| AnsType | enum('unique_choice','multiple_choice') | NO | | NULL | |
|
|
|
|
|
| Stem | text | NO | | NULL | |
|
|
|
|
|
+---------+-----------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_questions ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"QstCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"SvyCod INT NOT NULL,"
|
|
|
|
|
"QstInd INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"AnsType ENUM ('unique_choice','multiple_choice') NOT NULL,"
|
|
|
|
|
"Stem TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(QstCod),"
|
|
|
|
|
"INDEX(SvyCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-05 02:48:53 +01:00
|
|
|
|
/***** Table svy_surveys *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE svy_surveys;
|
|
|
|
|
+-----------+-------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+-------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| SvyCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Scope | enum('Sys','Cty','Ins','Ctr','Deg','Crs') | NO | MUL | Sys | |
|
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| DegCod | int(11) | NO | | -1 | |
|
|
|
|
|
| CrsCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Hidden | enum('N','Y') | NO | | N | |
|
|
|
|
|
| NumNotif | int(11) | NO | | 0 | |
|
|
|
|
|
| Roles | int(11) | NO | | 0 | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
|
|
|
|
| Title | varchar(2047) | NO | | NULL | |
|
|
|
|
|
| Txt | text | NO | | NULL | |
|
|
|
|
|
+-----------+-------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
13 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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," // Svy_MAX_BYTES_SURVEY_TITLE
|
|
|
|
|
"Txt TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"UNIQUE INDEX(SvyCod),"
|
|
|
|
|
"INDEX(Scope,Cod))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table svy_users *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE svy_users;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| SvyCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS svy_users ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"SvyCod INT NOT NULL,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(SvyCod,UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table timetable_crs *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE timetable_crs;
|
2017-04-25 02:07:32 +02:00
|
|
|
|
+-----------+------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| GrpCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Weekday | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| StartTime | time | NO | | NULL | |
|
|
|
|
|
| Duration | time | NO | | NULL | |
|
|
|
|
|
| ClassType | enum('free','lecture','practical') | NO | | NULL | |
|
2019-01-07 17:00:04 +01:00
|
|
|
|
| Info | varchar(2047) | NO | | | |
|
2017-04-25 02:07:32 +02:00
|
|
|
|
+-----------+------------------------------------+------+-----+---------+-------+
|
2019-01-07 17:00:04 +01:00
|
|
|
|
7 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS timetable_crs ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"GrpCod INT NOT NULL DEFAULT -1,"
|
2017-04-24 13:00:59 +02:00
|
|
|
|
"Weekday TINYINT NOT NULL," // 0=Monday...6=Sunday
|
|
|
|
|
"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 ''," // TT_MAX_BYTES_INFO
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"INDEX(CrsCod,GrpCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table timetable_tut *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE timetable_tut;
|
2019-01-07 17:00:04 +01:00
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| Weekday | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| StartTime | time | NO | | NULL | |
|
|
|
|
|
| Duration | time | NO | | NULL | |
|
|
|
|
|
| Info | varchar(2047) | NO | | | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS timetable_tut ("
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
2017-04-24 13:00:59 +02:00
|
|
|
|
"Weekday TINYINT NOT NULL," // 0=Monday...6=Sunday
|
|
|
|
|
"StartTime TIME NOT NULL,"
|
|
|
|
|
"Duration TIME NOT NULL,"
|
2019-01-07 17:00:04 +01:00
|
|
|
|
"Info VARCHAR(2047) NOT NULL DEFAULT ''," // TT_MAX_BYTES_INFO
|
2017-03-13 14:57:35 +01:00
|
|
|
|
"INDEX(UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-04 18:37:16 +01:00
|
|
|
|
/***** Table tml_comments *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_comments;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| PubCod | bigint(20) | NO | PRI | NULL | |
|
|
|
|
|
| Txt | longtext | NO | MUL | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tml_comments ("
|
2019-11-25 13:29:56 +01:00
|
|
|
|
"PubCod BIGINT NOT NULL,"
|
2020-01-30 20:47:00 +01:00
|
|
|
|
"Txt LONGTEXT NOT NULL,"
|
2019-11-25 13:29:56 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"UNIQUE INDEX(PubCod),"
|
|
|
|
|
"FULLTEXT(Txt),"
|
2020-01-30 20:47:00 +01:00
|
|
|
|
"INDEX(MedCod)) ENGINE = MYISAM");
|
2019-11-25 13:29:56 +01:00
|
|
|
|
|
2021-03-04 18:37:16 +01:00
|
|
|
|
/***** Table tml_comments_fav *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_comments_fav;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| FavCod | bigint(20) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| PubCod | bigint(20) | NO | MUL | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| TimeFav | datetime | NO | | NULL | |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("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," // Not used. For future use
|
|
|
|
|
"UNIQUE INDEX(FavCod),"
|
|
|
|
|
"UNIQUE INDEX(PubCod,UsrCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
|
|
|
|
|
2021-03-04 18:37:16 +01:00
|
|
|
|
/***** Table tml_notes *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_notes;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| NotCod | bigint(20) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| NoteType | tinyint(4) | NO | MUL | NULL | |
|
|
|
|
|
| Cod | int(11) | NO | | -1 | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| HieCod | int(11) | NO | | -1 | |
|
|
|
|
|
| Unavailable | enum('N','Y') | NO | | N | |
|
|
|
|
|
| TimeNote | datetime | NO | MUL | NULL | |
|
|
|
|
|
+-------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
7 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("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 *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_notes_fav;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
| FavCod | bigint(20) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| NotCod | bigint(20) | NO | MUL | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| TimeFav | datetime | NO | | NULL | |
|
|
|
|
|
+---------+------------+------+-----+---------+----------------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("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," // Not used. For future use
|
|
|
|
|
"UNIQUE INDEX(FavCod),"
|
|
|
|
|
"UNIQUE INDEX(NotCod,UsrCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
|
|
|
|
|
2021-03-04 18:37:16 +01:00
|
|
|
|
/***** Table tml_posts *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_posts;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+--------+----------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+----------+------+-----+---------+----------------+
|
|
|
|
|
| PstCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| Txt | longtext | NO | MUL | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
+--------+----------+------+-----+---------+----------------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tml_posts ("
|
2019-11-25 13:29:56 +01:00
|
|
|
|
"PubCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"Txt LONGTEXT NOT NULL,"
|
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"UNIQUE INDEX(PubCod),"
|
|
|
|
|
"FULLTEXT(Txt),"
|
2020-01-30 20:47:00 +01:00
|
|
|
|
"INDEX(MedCod)) ENGINE = MYISAM");
|
2019-11-25 13:29:56 +01:00
|
|
|
|
|
2021-03-04 18:37:16 +01:00
|
|
|
|
/***** Table tml_pubs *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_pubs;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+--------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------------+------------+------+-----+---------+----------------+
|
|
|
|
|
| PubCod | bigint(20) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| NotCod | bigint(20) | NO | MUL | NULL | |
|
|
|
|
|
| PublisherCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| PubType | tinyint(4) | NO | MUL | NULL | |
|
|
|
|
|
| TimePublish | datetime | NO | MUL | NULL | |
|
|
|
|
|
+--------------+------------+------+-----+---------+----------------+
|
|
|
|
|
5 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("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 *****/
|
2019-11-25 13:29:56 +01:00
|
|
|
|
/*
|
2021-03-04 18:37:16 +01:00
|
|
|
|
mysql> DESCRIBE tml_timelines;
|
2019-11-25 13:29:56 +01:00
|
|
|
|
+-----------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+------------+------+-----+---------+-------+
|
|
|
|
|
| SessionId | char(43) | NO | PRI | NULL | |
|
|
|
|
|
| NotCod | bigint(20) | NO | PRI | NULL | |
|
|
|
|
|
+-----------+------------+------+-----+---------+-------+
|
|
|
|
|
2 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2021-03-04 18:37:16 +01:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tml_timelines ("
|
2019-11-25 13:29:56 +01:00
|
|
|
|
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
|
|
|
|
"NotCod BIGINT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(SessionId,NotCod))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table tst_answers *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_answers;
|
2019-03-19 01:41:27 +01:00
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| QstCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| AnsInd | tinyint(4) | NO | | NULL | |
|
|
|
|
|
| Answer | text | NO | | NULL | |
|
|
|
|
|
| Feedback | text | NO | | NULL | |
|
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| Correct | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
+----------+---------------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_answers ("
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"QstCod INT NOT NULL,"
|
|
|
|
|
"AnsInd TINYINT NOT NULL,"
|
2019-03-02 21:49:11 +01:00
|
|
|
|
"Answer TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK
|
|
|
|
|
"Feedback TEXT NOT NULL," // Tst_MAX_BYTES_ANSWER_OR_FEEDBACK
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"Correct ENUM('N','Y') NOT NULL,"
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"INDEX(QstCod),"
|
|
|
|
|
"INDEX(MedCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table tst_config *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_config;
|
2020-02-17 12:33:21 +01:00
|
|
|
|
+---------------------+-------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------------------+-------------------------+------+-----+---------+-------+
|
|
|
|
|
| CrsCod | int(11) | NO | PRI | -1 | |
|
|
|
|
|
| Pluggable | enum('unknown','N','Y') | NO | | unknown | |
|
|
|
|
|
| Min | int(11) | NO | | NULL | |
|
|
|
|
|
| Def | int(11) | NO | | NULL | |
|
|
|
|
|
| Max | int(11) | NO | | NULL | |
|
|
|
|
|
| MinTimeNxtTstPerQst | int(11) | NO | | 0 | |
|
|
|
|
|
| Visibility | int(11) | NO | | 31 | |
|
|
|
|
|
+---------------------+-------------------------+------+-----+---------+-------+
|
|
|
|
|
7 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_config ("
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"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 0x1f,"
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"UNIQUE INDEX(CrsCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table tst_exam_questions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_exam_questions;
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
2020-04-02 03:28:08 +02:00
|
|
|
|
| ExaCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| QstInd | int(11) | NO | | NULL | |
|
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
| Indexes | text | NO | | NULL | |
|
|
|
|
|
| Answers | text | NO | | NULL | |
|
|
|
|
|
+---------+---------+------+-----+---------+-------+
|
|
|
|
|
6 rows in set (0.00 sec)
|
|
|
|
|
*/
|
2020-05-09 01:37:00 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_exam_questions (" // TODO: rename as tst_print_questions
|
|
|
|
|
"ExaCod INT NOT NULL," // TODO: rename as PrnCod
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"QstCod INT NOT NULL,"
|
|
|
|
|
"QstInd INT NOT NULL,"
|
|
|
|
|
"Score DOUBLE PRECISION NOT NULL DEFAULT 0,"
|
2020-05-09 01:37:00 +02:00
|
|
|
|
"Indexes TEXT NOT NULL," // Tst_MAX_BYTES_INDEXES_ONE_QST
|
|
|
|
|
"Answers TEXT NOT NULL," // Tst_MAX_BYTES_ANSWERS_ONE_QST
|
2020-04-02 03:28:08 +02:00
|
|
|
|
"UNIQUE INDEX(ExaCod,QstCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2020-05-09 01:37:00 +02:00
|
|
|
|
/***** Table tst_exams *****/ // TODO: rename as tst_prints
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_exams;
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
2020-04-02 03:28:08 +02:00
|
|
|
|
| ExaCod | int(11) | NO | PRI | NULL | auto_increment |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| CrsCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | | NULL | |
|
2020-03-30 00:30:08 +02:00
|
|
|
|
| StartTime | datetime | NO | | NULL | |
|
|
|
|
|
| EndTime | datetime | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| NumQsts | int(11) | NO | | 0 | |
|
|
|
|
|
| NumQstsNotBlank | int(11) | NO | | 0 | |
|
2020-04-16 21:03:22 +02:00
|
|
|
|
| Sent | enum('N','Y') | NO | | N | |
|
2020-03-30 00:30:08 +02:00
|
|
|
|
| AllowTeachers | enum('N','Y') | NO | | N | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
+-----------------+---------------+------+-----+---------+----------------+
|
2020-04-16 21:03:22 +02:00
|
|
|
|
10 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
2020-05-09 01:37:00 +02:00
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_exams (" // TODO: rename as tst_prints
|
|
|
|
|
"ExaCod INT NOT NULL AUTO_INCREMENT," // TODO: rename as PrnCod
|
2017-03-13 19:02:15 +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,"
|
2017-03-13 19:02:15 +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',"
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"Score DOUBLE PRECISION NOT NULL DEFAULT 0,"
|
2020-05-09 01:37:00 +02:00
|
|
|
|
"UNIQUE INDEX(ExaCod)," // TODO: rename as PrnCod
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"INDEX(CrsCod,UsrCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table tst_question_tags *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_question_tags;
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| TagCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| TagInd | tinyint(4) | NO | | NULL | |
|
|
|
|
|
+--------+------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_question_tags ("
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"QstCod INT NOT NULL,"
|
|
|
|
|
"TagCod INT NOT NULL,"
|
|
|
|
|
"TagInd TINYINT NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(QstCod,TagCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table tst_questions *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_questions;
|
|
|
|
|
+-----------------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| QstCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| EditTime | datetime | NO | | NULL | |
|
|
|
|
|
| AnsType | enum('int','float','true_false','unique_choice','multiple_choice','text') | NO | | NULL | |
|
|
|
|
|
| Shuffle | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
| Stem | text | NO | | NULL | |
|
|
|
|
|
| Feedback | text | NO | | NULL | |
|
2019-03-18 15:42:22 +01:00
|
|
|
|
| MedCod | int(11) | NO | MUL | -1 | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| NumHits | int(11) | NO | | 0 | |
|
|
|
|
|
| NumHitsNotBlank | int(11) | NO | | 0 | |
|
|
|
|
|
| Score | double | NO | | 0 | |
|
|
|
|
|
+-----------------+---------------------------------------------------------------------------+------+-----+---------+----------------+
|
2019-03-19 01:41:27 +01:00
|
|
|
|
11 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_questions ("
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"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,"
|
2019-03-02 21:49:11 +01:00
|
|
|
|
"Stem TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Feedback TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
2019-03-18 15:42:22 +01:00
|
|
|
|
"MedCod INT NOT NULL DEFAULT -1,"
|
2017-03-13 19:02:15 +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-18 15:42:22 +01:00
|
|
|
|
"INDEX(CrsCod,EditTime),"
|
|
|
|
|
"INDEX(MedCod))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table tst_tags *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE tst_tags;
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
|
|
|
|
| TagCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| CrsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| ChangeTime | datetime | NO | | NULL | |
|
2017-03-13 19:02:15 +01:00
|
|
|
|
| TagTxt | varchar(2047) | NO | | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| TagHidden | enum('N','Y') | NO | | NULL | |
|
|
|
|
|
+------------+---------------+------+-----+---------+----------------+
|
2017-03-13 19:02:15 +01:00
|
|
|
|
5 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
// CrsCod is redundant for speed in querys
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS tst_tags ("
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"TagCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"CrsCod INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"ChangeTime DATETIME NOT NULL,"
|
2020-05-17 17:11:04 +02:00
|
|
|
|
"TagTxt VARCHAR(2047) NOT NULL," // Tag_MAX_BYTES_TAG
|
2017-03-13 19:02:15 +01:00
|
|
|
|
"TagHidden ENUM('N','Y') NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(TagCod),"
|
|
|
|
|
"INDEX(CrsCod,ChangeTime))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-03-05 17:56:43 +01:00
|
|
|
|
/***** Table usr_IDs *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_IDs;
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| UsrID | char(16) | NO | PRI | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | | NULL | |
|
|
|
|
|
| Confirmed | enum('N','Y') | NO | | N | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_IDs ("
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"UsrID CHAR(16) NOT NULL," // ID_MAX_BYTES_USR_ID
|
|
|
|
|
"CreatTime DATETIME NOT NULL,"
|
|
|
|
|
"Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,UsrID),"
|
|
|
|
|
"INDEX(UsrID))");
|
|
|
|
|
|
|
|
|
|
/***** Table usr_admins *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_admins;
|
|
|
|
|
+--------+-------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+-------------------------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Scope | enum('Sys','Ins','Ctr','Deg') | NO | PRI | NULL | |
|
|
|
|
|
| Cod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+-------------------------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("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 *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_banned;
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
+--------+---------+------+-----+---------+-------+
|
|
|
|
|
1 row in set (0.01 sec)
|
|
|
|
|
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_banned ("
|
2017-03-13 20:32:03 +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
|
|
|
|
/***** Table usr_data *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_data;
|
2016-01-18 10:21:18 +01:00
|
|
|
|
+-------------------+--------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------------+--------------------------------------------------+------+-----+---------+----------------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | auto_increment |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| EncryptedUsrCod | char(43) | NO | UNI | | |
|
|
|
|
|
| Password | char(86) | NO | | | |
|
2017-03-13 20:32:03 +01:00
|
|
|
|
| Surname1 | varchar(511) | NO | | | |
|
|
|
|
|
| Surname2 | varchar(511) | NO | | | |
|
|
|
|
|
| FirstName | varchar(511) | NO | | | |
|
2016-01-18 10:21:18 +01:00
|
|
|
|
| Sex | enum('unknown','female','male') | NO | | unknown | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| Theme | char(16) | NO | MUL | | |
|
|
|
|
|
| IconSet | char(16) | NO | MUL | | |
|
|
|
|
|
| Language | char(2) | NO | MUL | | |
|
2016-01-18 10:21:18 +01:00
|
|
|
|
| FirstDayOfWeek | tinyint(4) | NO | MUL | 0 | |
|
2017-05-04 11:03:44 +02:00
|
|
|
|
| DateFormat | tinyint(4) | NO | MUL | 0 | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| Photo | char(43) | NO | | | |
|
2016-01-27 22:31:36 +01:00
|
|
|
|
| PhotoVisibility | enum('unknown','user','course','system','world') | NO | MUL | unknown | |
|
2019-03-22 15:21:46 +01:00
|
|
|
|
| BaPrfVisibility | enum('unknown','user','course','system','world') | NO | MUL | unknown | |
|
|
|
|
|
| ExPrfVisibility | enum('unknown','user','course','system','world') | NO | MUL | unknown | |
|
2016-01-18 10:21:18 +01:00
|
|
|
|
| CtyCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| InsCtyCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| InsCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| DptCod | int(11) | NO | MUL | -1 | |
|
|
|
|
|
| CtrCod | int(11) | NO | MUL | -1 | |
|
2017-03-13 20:32:03 +01:00
|
|
|
|
| Office | varchar(2047) | NO | | | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| OfficePhone | char(16) | NO | | | |
|
2017-03-13 20:32:03 +01:00
|
|
|
|
| LocalAddress | varchar(2047) | NO | | | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| LocalPhone | char(16) | NO | | | |
|
2017-03-13 20:32:03 +01:00
|
|
|
|
| FamilyAddress | varchar(2047) | NO | | | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| FamilyPhone | char(16) | NO | | | |
|
2017-03-13 20:32:03 +01:00
|
|
|
|
| OriginPlace | varchar(2047) | NO | | | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| Birthday | date | YES | | NULL | |
|
2016-01-18 10:21:18 +01:00
|
|
|
|
| Comments | text | NO | | NULL | |
|
|
|
|
|
| Menu | tinyint(4) | NO | MUL | 0 | |
|
|
|
|
|
| SideCols | tinyint(4) | NO | MUL | 3 | |
|
2019-03-17 18:20:55 +01:00
|
|
|
|
| ThirdPartyCookies | enum('N','Y') | NO | MUL | N | |
|
2016-05-01 01:52:35 +02:00
|
|
|
|
| NotifNtfEvents | int(11) | NO | | 0 | |
|
2016-01-18 10:21:18 +01:00
|
|
|
|
| EmailNtfEvents | int(11) | NO | | 0 | |
|
|
|
|
|
+-------------------+--------------------------------------------------+------+-----+---------+----------------+
|
2019-03-22 15:21:46 +01:00
|
|
|
|
35 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data ("
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"UsrCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"EncryptedUsrCod CHAR(43) NOT NULL DEFAULT '',"
|
|
|
|
|
"Password CHAR(86) COLLATE latin1_bin NOT NULL DEFAULT ''," // Pwd_BYTES_ENCRYPTED_PASSWORD
|
|
|
|
|
"Surname1 VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," // Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME
|
|
|
|
|
"Surname2 VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," // Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME
|
|
|
|
|
"FirstName VARCHAR(511) COLLATE latin1_spanish_ci NOT NULL DEFAULT ''," // Usr_MAX_BYTES_FIRSTNAME_OR_SURNAME
|
|
|
|
|
"Sex ENUM ('unknown','female','male') NOT NULL DEFAULT 'unknown',"
|
|
|
|
|
"Theme CHAR(16) NOT NULL DEFAULT '',"
|
|
|
|
|
"IconSet CHAR(16) NOT NULL DEFAULT '',"
|
|
|
|
|
"Language CHAR(2) NOT NULL DEFAULT '',"
|
|
|
|
|
"FirstDayOfWeek TINYINT NOT NULL DEFAULT 0,"
|
2017-05-04 11:03:44 +02:00
|
|
|
|
"DateFormat TINYINT NOT NULL DEFAULT 0,"
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"Photo CHAR(43) NOT NULL DEFAULT ''," // Cry_BYTES_ENCRYPTED_STR_SHA256_BASE64
|
|
|
|
|
"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',"
|
2017-03-13 20:32:03 +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,"
|
|
|
|
|
"Office VARCHAR(2047) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_ADDRESS
|
|
|
|
|
"OfficePhone CHAR(16) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_PHONE
|
2020-04-29 02:34:54 +02:00
|
|
|
|
"LocalAddress VARCHAR(2047) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_ADDRESS // TODO: Remove, not yet used
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"LocalPhone CHAR(16) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_PHONE
|
2020-04-29 02:34:54 +02:00
|
|
|
|
"FamilyAddress VARCHAR(2047) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_ADDRESS // TODO: Remove, not yet used
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"FamilyPhone CHAR(16) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_PHONE
|
2020-04-29 01:38:35 +02:00
|
|
|
|
"OriginPlace VARCHAR(2047) NOT NULL DEFAULT ''," // Usr_MAX_BYTES_ADDRESS // TODO: Remove, not yet used
|
2020-03-09 02:50:58 +01:00
|
|
|
|
"Birthday DATE,"
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"Comments TEXT NOT NULL," // Cns_MAX_BYTES_TEXT
|
|
|
|
|
"Menu TINYINT NOT NULL DEFAULT 0,"
|
|
|
|
|
"SideCols TINYINT NOT NULL DEFAULT 3,"
|
2019-03-17 18:20:55 +01:00
|
|
|
|
"ThirdPartyCookies ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"NotifNtfEvents INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"EmailNtfEvents INT NOT NULL DEFAULT 0,"
|
|
|
|
|
"PRIMARY KEY(UsrCod),"
|
|
|
|
|
"UNIQUE INDEX(EncryptedUsrCod),"
|
|
|
|
|
"INDEX(Theme),"
|
|
|
|
|
"INDEX(IconSet),"
|
|
|
|
|
"INDEX(Language),"
|
|
|
|
|
"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),"
|
2017-03-13 20:32:03 +01:00
|
|
|
|
"INDEX(CtyCod),"
|
|
|
|
|
"INDEX(InsCtyCod),"
|
|
|
|
|
"INDEX(InsCod),"
|
|
|
|
|
"INDEX(DptCod),"
|
|
|
|
|
"INDEX(CtrCod),"
|
|
|
|
|
"INDEX(Menu),"
|
2019-03-17 18:20:55 +01:00
|
|
|
|
"INDEX(SideCols),"
|
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 *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_duplicated;
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| InformerCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| InformTime | datetime | NO | | NULL | |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_duplicated ("
|
2017-03-13 20:57:51 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"InformerCod INT NOT NULL,"
|
|
|
|
|
"InformTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,InformerCod),"
|
|
|
|
|
"INDEX(UsrCod))");
|
2016-06-15 12:06:41 +02:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table usr_emails *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_emails;
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
2017-03-13 20:57:51 +01:00
|
|
|
|
| E_mail | varchar(255) | NO | PRI | NULL | |
|
2014-12-01 23:55:08 +01:00
|
|
|
|
| CreatTime | datetime | NO | | NULL | |
|
|
|
|
|
| Confirmed | enum('N','Y') | NO | | N | |
|
|
|
|
|
+-----------+---------------+------+-----+---------+-------+
|
2017-03-13 20:57:51 +01:00
|
|
|
|
4 rows in set (0,00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_emails ("
|
2017-03-13 20:57:51 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL," // Cns_MAX_CHARS_EMAIL_ADDRESS
|
|
|
|
|
"CreatTime DATETIME NOT NULL,"
|
|
|
|
|
"Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,E_mail),"
|
|
|
|
|
"UNIQUE INDEX(E_mail))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2015-03-10 01:47:25 +01:00
|
|
|
|
/***** Table usr_figures *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_figures;
|
|
|
|
|
+----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------------+----------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
2015-03-12 01:52:19 +01:00
|
|
|
|
| FirstClickTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| NumClicks | int(11) | NO | MUL | -1 | |
|
2019-03-06 10:13:39 +01:00
|
|
|
|
| NumSocPub | int(11) | NO | | -1 | |
|
2015-03-14 02:26:59 +01:00
|
|
|
|
| NumFileViews | int(11) | NO | | -1 | |
|
2015-03-11 12:38:47 +01:00
|
|
|
|
| NumForPst | int(11) | NO | | -1 | |
|
2015-03-11 00:36:12 +01:00
|
|
|
|
| NumMsgSnt | int(11) | NO | | -1 | |
|
2015-03-10 01:47:25 +01:00
|
|
|
|
+----------------+----------+------+-----+---------+-------+
|
2019-03-06 10:13:39 +01:00
|
|
|
|
7 rows in set (0.01 sec)
|
2015-03-10 01:47:25 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_figures ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"FirstClickTime DATETIME NOT NULL,"
|
|
|
|
|
"NumClicks INT NOT NULL DEFAULT -1,"
|
2019-03-06 10:13:39 +01:00
|
|
|
|
"NumSocPub INT NOT NULL DEFAULT -1,"
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"NumFileViews INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"NumForPst INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"NumMsgSnt INT NOT NULL DEFAULT -1,"
|
|
|
|
|
"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 *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_follow;
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
| FollowerCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| FollowedCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| FollowTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+-------------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_follow ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"FollowerCod INT NOT NULL,"
|
|
|
|
|
"FollowedCod INT NOT NULL,"
|
|
|
|
|
"FollowTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX (FollowerCod,FollowedCod),"
|
|
|
|
|
"UNIQUE INDEX (FollowedCod,FollowerCod),"
|
|
|
|
|
"INDEX (FollowTime))");
|
2015-03-18 01:06:43 +01:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table usr_last *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_last;
|
2019-04-01 23:15:17 +02:00
|
|
|
|
+--------------+-------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------------+-------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| WhatToSearch | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| LastSco | enum('Unk','Sys','Cty','Ins','Ctr','Deg','Crs') | NO | | Unk | |
|
|
|
|
|
| LastCod | int(11) | NO | | -1 | |
|
|
|
|
|
| LastAct | int(11) | NO | | -1 | |
|
|
|
|
|
| LastRole | tinyint(4) | NO | | 0 | |
|
|
|
|
|
| LastTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
| LastAccNotif | datetime | NO | | NULL | |
|
|
|
|
|
| TimelineUsrs | tinyint(4) | NO | | 0 | |
|
|
|
|
|
+--------------+-------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
9 rows in set (0.01 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_last ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"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,"
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"LastTime DATETIME NOT NULL,"
|
|
|
|
|
"LastAccNotif DATETIME NOT NULL,"
|
2019-02-21 20:04:05 +01:00
|
|
|
|
"TimelineUsrs TINYINT NOT NULL DEFAULT 0,"
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"UNIQUE INDEX(UsrCod),"
|
|
|
|
|
"INDEX(LastTime))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table usr_nicknames *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_nicknames;
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| Nickname | char(16) | NO | PRI | NULL | |
|
|
|
|
|
| CreatTime | datetime | NO | | NULL | |
|
|
|
|
|
+-----------+----------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.01 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_nicknames ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
2021-02-15 22:49:44 +01:00
|
|
|
|
"Nickname CHAR(16) COLLATE latin1_spanish_ci NOT NULL," // Nck_MAX_BYTES_NICK_WITHOUT_ARROBA
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"CreatTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(UsrCod,Nickname),"
|
|
|
|
|
"UNIQUE INDEX(Nickname))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2016-10-06 19:29:56 +02:00
|
|
|
|
/***** Table usr_report *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_report;
|
2016-10-06 21:31:51 +02:00
|
|
|
|
+---------------+--------------+------+-----+---------+----------------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+---------------+--------------+------+-----+---------+----------------+
|
|
|
|
|
| RepCod | int(11) | NO | PRI | NULL | auto_increment |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| ReportTimeUTC | datetime | NO | | NULL | |
|
|
|
|
|
| UniqueDirL | char(2) | NO | | NULL | |
|
|
|
|
|
| UniqueDirR | char(41) | NO | | NULL | |
|
|
|
|
|
| Filename | varchar(255) | NO | | NULL | |
|
|
|
|
|
| Permalink | varchar(255) | NO | | NULL | |
|
|
|
|
|
+---------------+--------------+------+-----+---------+----------------+
|
2016-10-06 19:29:56 +02:00
|
|
|
|
7 rows in set (0,00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_report ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"RepCod INT NOT NULL AUTO_INCREMENT,"
|
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"ReportTimeUTC DATETIME NOT NULL,"
|
|
|
|
|
"UniqueDirL CHAR(2) NOT NULL," // 2 leftmost chars from a unique 43 chars base64url codified from a unique SHA-256 string
|
|
|
|
|
"UniqueDirR CHAR(41) NOT NULL," // 41 rightmost chars from a unique 43 chars base64url codified from a unique SHA-256 string
|
|
|
|
|
"Filename VARCHAR(255) NOT NULL," // Report filename, NAME_MAX
|
|
|
|
|
"Permalink VARCHAR(255) NOT NULL," // Full URL (permalink), Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(RepCod),"
|
2016-10-06 19:29:56 +02:00
|
|
|
|
"INDEX(UsrCod))");
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/***** Table usr_webs *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE usr_webs;
|
2020-03-06 12:22:20 +01:00
|
|
|
|
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
|
|
|
| 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','twitch','twitter','wikipedia','youtube') | NO | PRI | NULL | |
|
|
|
|
|
| URL | varchar(255) | NO | | NULL | |
|
|
|
|
|
+--------+------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+------+-----+---------+-------+
|
|
|
|
|
3 rows in set (0.00 sec)
|
2014-12-01 23:55:08 +01:00
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_webs ("
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"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',"
|
2020-03-06 12:22:20 +01:00
|
|
|
|
"'tumblr','twitch','twitter',"
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"'wikipedia',"
|
|
|
|
|
"'youtube') NOT NULL,"
|
|
|
|
|
"URL VARCHAR(255) NOT NULL," // Cns_MAX_BYTES_WWW
|
|
|
|
|
"UNIQUE INDEX(UsrCod,Web))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Table ws_keys *****/
|
|
|
|
|
/*
|
|
|
|
|
mysql> DESCRIBE ws_keys;
|
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
|
|
|
|
| Field | Type | Null | Key | Default | Extra |
|
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
|
|
|
|
| WSKey | char(43) | NO | PRI | NULL | |
|
|
|
|
|
| UsrCod | int(11) | NO | MUL | NULL | |
|
|
|
|
|
| PlgCod | int(11) | NO | | NULL | |
|
|
|
|
|
| LastTime | datetime | NO | MUL | NULL | |
|
|
|
|
|
+----------+----------+------+-----+---------+-------+
|
|
|
|
|
4 rows in set (0.00 sec)
|
|
|
|
|
*/
|
|
|
|
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ws_keys ("
|
2019-05-16 14:02:06 +02:00
|
|
|
|
"WSKey CHAR(43) NOT NULL," // API_BYTES_WS_KEY
|
2017-03-13 22:47:57 +01:00
|
|
|
|
"UsrCod INT NOT NULL,"
|
|
|
|
|
"PlgCod INT NOT NULL,"
|
|
|
|
|
"LastTime DATETIME NOT NULL,"
|
|
|
|
|
"UNIQUE INDEX(WSKey),"
|
|
|
|
|
"INDEX(UsrCod),"
|
|
|
|
|
"INDEX(PlgCod),"
|
|
|
|
|
"INDEX(LastTime))");
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
|
|
|
|
/***** Show success message *****/
|
2019-11-11 00:15:44 +01:00
|
|
|
|
HTM_OL_End ();
|
2019-02-16 14:37:34 +01:00
|
|
|
|
Ale_ShowAlert (Ale_SUCCESS,Txt_Created_tables_in_the_database_that_did_not_exist);
|
2014-12-01 23:55:08 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/****************** Create a database table if not exists ********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
static void DB_CreateTable (const char *Query)
|
|
|
|
|
{
|
2019-10-26 22:49:13 +02:00
|
|
|
|
HTM_LI_Begin ("class=\"DAT\"");
|
2019-11-10 12:36:37 +01:00
|
|
|
|
HTM_Txt (Query);
|
2019-10-26 22:49:13 +02:00
|
|
|
|
HTM_LI_End ();
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
if (mysql_query (&Gbl.mysql,Query))
|
|
|
|
|
DB_ExitOnMySQLError ("can not create table");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/********************* Open connection to the database ***********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_OpenDBConnection (void)
|
|
|
|
|
{
|
|
|
|
|
if (mysql_init (&Gbl.mysql) == NULL)
|
|
|
|
|
Lay_ShowErrorAndExit ("Can not init MySQL.");
|
|
|
|
|
|
|
|
|
|
if (mysql_real_connect (&Gbl.mysql,Cfg_DATABASE_HOST,
|
|
|
|
|
Cfg_DATABASE_USER,Gbl.Config.DatabasePassword,
|
|
|
|
|
Cfg_DATABASE_DBNAME,0,NULL,0) == NULL)
|
|
|
|
|
DB_ExitOnMySQLError ("can not connect to database");
|
|
|
|
|
|
|
|
|
|
Gbl.DB.DatabaseIsOpen = true;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/********************* Close connection to the database **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_CloseDBConnection (void)
|
|
|
|
|
{
|
|
|
|
|
if (Gbl.DB.DatabaseIsOpen)
|
|
|
|
|
{
|
|
|
|
|
mysql_close (&Gbl.mysql); // Close the connection to the database
|
|
|
|
|
Gbl.DB.DatabaseIsOpen = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
2019-03-09 20:12:44 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/********************** Build a query to be used later ***********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_BuildQuery (char **Query,const char *fmt,...)
|
2018-10-30 02:37:09 +01:00
|
|
|
|
{
|
|
|
|
|
va_list ap;
|
2018-11-02 16:39:35 +01:00
|
|
|
|
int NumBytesPrinted;
|
2018-10-30 02:37:09 +01:00
|
|
|
|
|
|
|
|
|
if (*Query != NULL)
|
|
|
|
|
Lay_ShowErrorAndExit ("Error building query.");
|
|
|
|
|
|
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-10-30 02:37:09 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
}
|
|
|
|
|
|
2018-10-25 11:26:44 +02:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/******************** Make a SELECT query from database **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-10-30 09:02:14 +01:00
|
|
|
|
unsigned long DB_QuerySELECT (MYSQL_RES **mysql_res,const char *MsgError,
|
|
|
|
|
const char *fmt,...)
|
|
|
|
|
{
|
|
|
|
|
va_list ap;
|
2018-11-02 16:39:35 +01:00
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-10-30 09:02:14 +01:00
|
|
|
|
|
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-10-30 09:02:14 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-11-14 23:40:56 +01:00
|
|
|
|
return DB_QuerySELECTusingQueryStr (Query,mysql_res,MsgError);
|
2018-10-30 09:02:14 +01:00
|
|
|
|
}
|
|
|
|
|
|
2018-11-14 23:40:56 +01:00
|
|
|
|
static unsigned long DB_QuerySELECTusingQueryStr (char *Query,
|
|
|
|
|
MYSQL_RES **mysql_res,
|
|
|
|
|
const char *MsgError)
|
2018-10-25 11:26:44 +02:00
|
|
|
|
{
|
|
|
|
|
int Result;
|
|
|
|
|
|
|
|
|
|
/***** Check that query string pointer
|
2018-10-30 02:37:09 +01:00
|
|
|
|
does point to an allocated string *****/
|
2018-11-14 23:40:56 +01:00
|
|
|
|
if (Query == NULL)
|
2018-10-25 11:26:44 +02:00
|
|
|
|
Lay_ShowErrorAndExit ("Wrong query string.");
|
|
|
|
|
|
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-14 23:40:56 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-25 11:26:44 +02:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
|
|
|
|
|
/***** Store query result *****/
|
|
|
|
|
if ((*mysql_res = mysql_store_result (&Gbl.mysql)) == NULL)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
|
|
|
|
|
/***** Return number of rows of result *****/
|
|
|
|
|
return (unsigned long) mysql_num_rows (*mysql_res);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/**************** Make a SELECT COUNT query from database ********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-04 20:51:38 +01:00
|
|
|
|
unsigned long DB_GetNumRowsTable (const char *Table)
|
|
|
|
|
{
|
2019-12-19 11:00:14 +01:00
|
|
|
|
/***** Get total number of rows from database *****/
|
2018-11-04 20:51:38 +01:00
|
|
|
|
return DB_QueryCOUNT ("can not get number of rows in table",
|
|
|
|
|
"SELECT COUNT(*) FROM %s",
|
|
|
|
|
Table);
|
|
|
|
|
}
|
|
|
|
|
|
2018-11-02 19:37:11 +01:00
|
|
|
|
unsigned long DB_QueryCOUNT (const char *MsgError,const char *fmt,...)
|
2018-10-31 10:19:01 +01:00
|
|
|
|
{
|
|
|
|
|
va_list ap;
|
2018-11-02 16:39:35 +01:00
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-11-04 20:51:38 +01:00
|
|
|
|
MYSQL_RES *mysql_res;
|
|
|
|
|
MYSQL_ROW row;
|
|
|
|
|
unsigned long NumRows;
|
2018-10-31 10:19:01 +01:00
|
|
|
|
|
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-10-31 10:19:01 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-26 11:01:06 +02:00
|
|
|
|
/***** Make query "SELECT COUNT(*) FROM..." *****/
|
2018-11-14 23:40:56 +01:00
|
|
|
|
DB_QuerySELECTusingQueryStr (Query,&mysql_res,MsgError);
|
2018-10-26 11:01:06 +02:00
|
|
|
|
|
|
|
|
|
/***** Get number of rows *****/
|
|
|
|
|
row = mysql_fetch_row (mysql_res);
|
|
|
|
|
if (sscanf (row[0],"%lu",&NumRows) != 1)
|
|
|
|
|
Lay_ShowErrorAndExit ("Error when counting number of rows.");
|
|
|
|
|
|
|
|
|
|
/***** Free structure that stores the query result *****/
|
|
|
|
|
DB_FreeMySQLResult (&mysql_res);
|
|
|
|
|
|
|
|
|
|
return NumRows;
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/******************** Make an INSERT query in database ***********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-02 19:37:11 +01:00
|
|
|
|
void DB_QueryINSERT (const char *MsgError,const char *fmt,...)
|
2018-10-26 19:59:39 +02:00
|
|
|
|
{
|
2018-11-02 19:37:11 +01:00
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-11-04 20:51:38 +01:00
|
|
|
|
int Result;
|
2018-10-26 19:59:39 +02:00
|
|
|
|
|
2018-11-02 19:37:11 +01:00
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-02 19:37:11 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-30 02:37:09 +01:00
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-04 20:51:38 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-30 02:37:09 +01:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/** Make an INSERT query in database and return code of last inserted item ***/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-03 01:45:36 +01:00
|
|
|
|
long DB_QueryINSERTandReturnCode (const char *MsgError,const char *fmt,...)
|
2018-10-26 19:59:39 +02:00
|
|
|
|
{
|
2018-11-03 01:45:36 +01:00
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-10-26 19:59:39 +02:00
|
|
|
|
int Result;
|
|
|
|
|
|
2018-11-03 01:45:36 +01:00
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-03 01:45:36 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-26 19:59:39 +02:00
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-03 01:45:36 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-26 19:59:39 +02:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
|
|
|
|
|
/***** Return the code of the inserted item *****/
|
2014-12-01 23:55:08 +01:00
|
|
|
|
return (long) mysql_insert_id (&Gbl.mysql);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/******************** Make an REPLACE query in database **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-02 16:39:35 +01:00
|
|
|
|
void DB_QueryREPLACE (const char *MsgError,const char *fmt,...)
|
2018-10-26 19:59:39 +02:00
|
|
|
|
{
|
2018-11-02 16:39:35 +01:00
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-10-26 19:59:39 +02:00
|
|
|
|
int Result;
|
|
|
|
|
|
2018-11-02 16:39:35 +01:00
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-02 16:39:35 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-26 19:59:39 +02:00
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-02 16:39:35 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-26 19:59:39 +02:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/******************** Make a UPDATE query from database **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-03 12:16:40 +01:00
|
|
|
|
void DB_QueryUPDATE (const char *MsgError,const char *fmt,...)
|
2018-10-30 02:37:09 +01:00
|
|
|
|
{
|
2018-11-03 12:16:40 +01:00
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-11-04 20:51:38 +01:00
|
|
|
|
int Result;
|
2018-11-03 12:16:40 +01:00
|
|
|
|
|
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-03 12:16:40 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-26 19:59:39 +02:00
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-04 20:51:38 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-26 19:59:39 +02:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
2018-11-04 20:51:38 +01:00
|
|
|
|
}
|
2018-10-18 21:32:06 +02:00
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/******************** Make a DELETE query from database **********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-02 22:00:31 +01:00
|
|
|
|
void DB_QueryDELETE (const char *MsgError,const char *fmt,...)
|
|
|
|
|
{
|
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-11-02 22:00:31 +01:00
|
|
|
|
int Result;
|
|
|
|
|
|
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-02 22:00:31 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
|
|
|
|
/***** Query database and free query string pointer *****/
|
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-11-02 22:00:31 +01:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/**************** Make other kind of query from database *********************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
2018-11-02 22:41:02 +01:00
|
|
|
|
void DB_Query (const char *MsgError,const char *fmt,...)
|
2018-10-21 13:02:07 +02:00
|
|
|
|
{
|
2018-11-02 22:41:02 +01:00
|
|
|
|
va_list ap;
|
|
|
|
|
int NumBytesPrinted;
|
2018-11-05 19:40:36 +01:00
|
|
|
|
char *Query;
|
2018-10-21 13:02:07 +02:00
|
|
|
|
int Result;
|
|
|
|
|
|
2018-11-02 22:41:02 +01:00
|
|
|
|
va_start (ap,fmt);
|
|
|
|
|
NumBytesPrinted = vasprintf (&Query,fmt,ap);
|
|
|
|
|
va_end (ap);
|
2019-11-14 08:59:11 +01:00
|
|
|
|
if (NumBytesPrinted < 0) // -1 if no memory or any other error
|
2018-11-02 22:41:02 +01:00
|
|
|
|
Lay_NotEnoughMemoryExit ();
|
|
|
|
|
|
2018-10-28 22:04:34 +01:00
|
|
|
|
/***** Query database and free query string pointer *****/
|
2018-11-02 22:41:02 +01:00
|
|
|
|
Result = mysql_query (&Gbl.mysql,Query); // Returns 0 on success
|
2019-11-06 19:45:20 +01:00
|
|
|
|
free (Query);
|
2018-10-21 13:02:07 +02:00
|
|
|
|
if (Result)
|
|
|
|
|
DB_ExitOnMySQLError (MsgError);
|
|
|
|
|
}
|
|
|
|
|
|
2014-12-01 23:55:08 +01:00
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/********** Free structure that stores the result of a SELECT query **********/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_FreeMySQLResult (MYSQL_RES **mysql_res)
|
|
|
|
|
{
|
2020-02-24 19:31:55 +01:00
|
|
|
|
if (mysql_res)
|
|
|
|
|
if (*mysql_res)
|
|
|
|
|
{
|
|
|
|
|
mysql_free_result (*mysql_res);
|
|
|
|
|
*mysql_res = NULL;
|
|
|
|
|
}
|
2014-12-01 23:55:08 +01:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
/*********** Abort program due to an error in the MySQL database *************/
|
|
|
|
|
/*****************************************************************************/
|
|
|
|
|
|
|
|
|
|
void DB_ExitOnMySQLError (const char *Message)
|
|
|
|
|
{
|
2018-10-17 10:32:18 +02:00
|
|
|
|
char BigErrorMsg[64 * 1024];
|
2014-12-01 23:55:08 +01:00
|
|
|
|
|
2021-02-15 16:25:55 +01:00
|
|
|
|
snprintf (BigErrorMsg,sizeof (BigErrorMsg),"Database error: %s (%s).",
|
2018-10-17 10:32:18 +02:00
|
|
|
|
Message,mysql_error (&Gbl.mysql));
|
2014-12-01 23:55:08 +01:00
|
|
|
|
Lay_ShowErrorAndExit (BigErrorMsg);
|
|
|
|
|
}
|