summaryrefslogtreecommitdiffstats
path: root/admin/survey/modules/mod_hierarhija/db_hirarhija_create.sql
blob: b7c3682686e126a9f3b04e655411ee44482e5329 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
# 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;