1KA_F2F/admin/survey/modules/mod_hierarhija/db_hirarhija_create.sql
2020-08-14 13:36:36 +02:00

191 lines
7.7 KiB
SQL

# Vse tabele, ki so potrebne za modul mod_hierarhija
#Hierarhija admin nivo - izgradnja nivojev in šifrantov
CREATE TABLE srv_hierarhija_ravni (
id integer NOT NULL auto_increment,
anketa_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
level TINYINT NULL DEFAULT NULL,
ime VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE srv_hierarhija_sifranti (
id integer NOT NULL auto_increment,
hierarhija_ravni_id INTEGER NOT NULL,
ime VARCHAR(255) NULL DEFAULT NULL,
PRIMARY KEY (id),
FOREIGN KEY (hierarhija_ravni_id) REFERENCES srv_hierarhija_ravni (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE srv_hierarhija_users (
user_id INTEGER NOT NULL,
type TINYINT NULL DEFAULT 10
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# Hierarhija uporabniki, kjer se zgradi struktura
CREATE TABLE srv_hierarhija_struktura (
id INTEGER NOT NULL auto_increment,
hierarhija_ravni_id INTEGER NOT NULL,
parent_id INTEGER DEFAULT NULL,
hierarhija_sifranti_id INTEGER NOT NULL,
level TINYINT NOT NULL,
PRIMARY KEY (id),
FOREIGN KEY (hierarhija_ravni_id) REFERENCES srv_hierarhija_ravni (id) ON DELETE CASCADE,
FOREIGN KEY (parent_id) REFERENCES srv_hierarhija_struktura (id) ON DELETE CASCADE,
FOREIGN KEY (hierarhija_sifranti_id) REFERENCES srv_hierarhija_sifranti (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE srv_hierarhija_struktura_users (
hierarhija_struktura_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
FOREIGN KEY (hierarhija_struktura_id) REFERENCES srv_hierarhija_struktura (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
#Pivot table srv_hierarhija in srv_vrednost
CREATE TABLE srv_hierarhija_sifrant_vrednost (
sifrant_id INTEGER NOT NULL,
vrednost_id INTEGER NOT NULL,
FOREIGN KEY (sifrant_id) REFERENCES srv_hierarhija_sifranti (id) ON DELETE CASCADE,
FOREIGN KEY (vrednost_id) REFERENCES srv_vrednost (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
#Pivot table srv_hierarhija in srv_vrednost
#ALTER TABLE srv_hierarhija_struktura CHANGE hidden hidden ENUM('0','1','2') NOT NULL DEFAULT '0';
ALTER TABLE srv_hierarhija_struktura
ADD COLUMN anketa_id INTEGER NOT NULL AFTER id,
ADD FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE;
# Dodamo možnost unikaten, da upošteva samo unikatne šifrante na omenjeni ravni
ALTER TABLE srv_hierarhija_ravni
ADD COLUMN unikaten INTEGER DEFAULT 0;
# 23.12.2015
# dDoločimo user type glede na anketo
ALTER TABLE srv_hierarhija_users
ADD COLUMN id INT UNSIGNED NOT NULL AUTO_INCREMENT FIRST,
ADD COLUMN anketa_id INTEGER NOT NULL AFTER user_id,
ADD PRIMARY KEY (id),
ADD FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE;
# kreiranje naključnega 5 znakov dolgega unikatnega niza
# CAST(MD5(RAND()) as CHAR(5))
# 8.4.2016
CREATE TABLE srv_hierarhija_koda (
koda VARCHAR(10) NOT NULL UNIQUE,
anketa_id INTEGER NOT NULL,
url TEXT NOT NULL,
vloga ENUM('ucitelj', 'ucenec') NOT NULL,
user_id INT(15) NOT NULL,
hierarhija_struktura_id INT(15) NOT NULL,
datetime DATETIME,
PRIMARY KEY (koda),
FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE,
FOREIGN KEY (hierarhija_struktura_id) REFERENCES srv_hierarhija_struktura (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# Možnost shranjevanja hierarhije
# 10.05.2016
CREATE TABLE srv_hierarhija_shrani (
id integer NOT NULL auto_increment,
anketa_id INTEGER NOT NULL,
user_id INTEGER NOT NULL,
ime VARCHAR(255) NULL DEFAULT NULL,
hierarhija LONGTEXT,
PRIMARY KEY (id),
FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# Shranjevanje opcij za hierarhijo
# 26.5.2016
CREATE TABLE srv_hierarhija_options (
id integer NOT NULL auto_increment,
anketa_id INTEGER NOT NULL,
option_name VARCHAR(200) NOT NULL,
option_value LONGTEXT,
PRIMARY KEY (id),
FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# Hierarhija help
INSERT INTO srv_help (what, help) VALUES ('srv_hierarchy_edit_elements', 'Za vsak izbran nivo se lahko dodaja nove elemente. Z izbiro možnosti brisanja se izbriše celoten nivo z vsemi šifranti. Lahko pa se omenejene elemente ureja in odstrani zgolj poljuben element nivoja.');
INSERT INTO srv_help (what, help) VALUES ('srv_hierarhy_last_level_missing', 'Na zadnjem nivoju manjka izbran element in elektronski naslov osebe, ki bo preko elektronske pošte dobila kodo za reševanje ankete.');
# Shranjevanje strukture
# 3.11.2016
ALTER TABLE srv_hierarhija_shrani ADD COLUMN struktura LONGTEXT DEFAULT NULL;
# Dodana stolpec za seštevek vseh učitelje v in vseh uporabnikov
# 25.11.2016
ALTER TABLE srv_hierarhija_shrani ADD COLUMN st_uciteljev INTEGER DEFAULT NULL;
ALTER TABLE srv_hierarhija_shrani ADD COLUMN st_vseh_uporabnikov INTEGER DEFAULT NULL;
# Omogočimo komentarje za posamezno anketo
# 02.12.2016
ALTER TABLE srv_hierarhija_shrani ADD COLUMN komentar TEXT DEFAULT NULL;
# Piškot zapišemo za učitelja
# 26.05.2017
ALTER TABLE srv_hierarhija_koda
ADD COLUMN srv_user_id INT(11) DEFAULT NULL AFTER vloga,
ADD FOREIGN KEY (srv_user_id) REFERENCES srv_user (id);
# Omogočimo komentarje za posamezno anketo
# V mod_hierarhija/porocila je potreno ustvariti mapo logo (755)
# 09.06.2017
ALTER TABLE srv_hierarhija_shrani ADD COLUMN logo VARCHAR(255) DEFAULT NULL;
# 16.06.2017
DROP INDEX koda ON srv_hierarhija_koda;
ALTER TABLE srv_hierarhija_koda ADD UNIQUE INDEX (koda);
# 19.06.2017
INSERT INTO srv_hierarhija_options (anketa_id, option_name, option_value) SELECT anketa_id, 'ne_poslji_kode_ucencem', '1' FROM srv_hierarhija_options WHERE option_name='poslji_kode' AND option_value='uciteljem';
INSERT INTO srv_hierarhija_options (anketa_id, option_name, option_value) SELECT anketa_id, 'ne_poslji_kode_ucencem', '1' FROM srv_hierarhija_options WHERE option_name='poslji_kode' AND option_value='nikomur';
INSERT INTO srv_hierarhija_options (anketa_id, option_name, option_value) SELECT anketa_id, 'ne_poslji_kodo_ucitelju', '1' FROM srv_hierarhija_options WHERE option_name='poslji_kode' AND option_value='nikomur';
DELETE FROM srv_hierarhija_options WHERE option_name='poslji_kode';
#22.06.2017
ALTER TABLE srv_hierarhija_shrani ADD COLUMN uporabniki_list TEXT DEFAULT NULL;
# Ustvarjena tabela za superšifro
# 06.07.2017
CREATE TABLE srv_hierarhija_supersifra (
koda VARCHAR(10) NOT NULL UNIQUE,
anketa_id INTEGER NOT NULL,
kode TEXT NOT NULL,
datetime DATETIME,
PRIMARY KEY (koda),
FOREIGN KEY (anketa_id) REFERENCES srv_anketa (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# tabela, ki beleži uporabnike in katere ankete je rešil s superšiframi
# 10.7.2017
CREATE TABLE srv_hierarhija_supersifra_resevanje (
user_id INTEGER NOT NULL,
supersifra VARCHAR(10) NOT NULL,
koda VARCHAR(10) NOT NULL,
status TINYINT DEFAULT NULL,
datetime DATETIME DEFAULT NOW(),
PRIMARY KEY (user_id),
FOREIGN KEY (user_id) REFERENCES srv_user (id) ON DELETE CASCADE,
FOREIGN KEY (supersifra) REFERENCES srv_hierarhija_supersifra (koda) ON DELETE CASCADE,
FOREIGN KEY (koda) REFERENCES srv_hierarhija_koda (koda) ON DELETE CASCADE #na testu povzročal težave
)ENGINE=InnoDB DEFAULT CHARSET=utf8;
# Dostop do mdula SA
CREATE TABLE srv_hierarhija_dostop (
user_id INTEGER NOT NULL,
dostop TINYINT DEFAULT 0,
ustanova VARCHAR(255) DEFAULT NULL,
aai_email VARCHAR(100) DEFAULT NULL,
created_at DATETIME DEFAULT CURRENT_TIMESTAMP,
updated_at DATETIME ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (user_id),
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
)ENGINE=InnoDB DEFAULT CHARSET=utf8;