3 id INTEGER PRIMARY KEY,
5 cuatrimestre INT NOT NULL,
7 descripcion VARCHAR(255)
9 CREATE UNIQUE INDEX curso_pk ON curso (anio, cuatrimestre, numero);
11 CREATE TABLE usuario (
12 id INTEGER PRIMARY KEY,
13 child_name VARCHAR(255),
14 usuario VARCHAR(10) NOT NULL UNIQUE,
15 contrasenia VARCHAR(255),
16 nombre VARCHAR(255) NOT NULL,
18 telefono VARCHAR(255),
19 creado TIMESTAMP NOT NULL,
21 activo TINYINT NOT NULL
24 CREATE TABLE docente (
25 id INTEGER PRIMARY KEY,
26 nombrado TINYINT NOT NULL
30 id INTEGER PRIMARY KEY,
35 id INTEGER PRIMARY KEY,
36 child_name VARCHAR(255),
37 nombre VARCHAR(30) NOT NULL UNIQUE,
38 descripcion VARCHAR(255)
41 CREATE TABLE dependencia (
42 padre_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
43 hijo_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
45 PRIMARY KEY (padre_id, hijo_id)
48 CREATE TABLE enunciado (
49 id INTEGER PRIMARY KEY,
50 nombre VARCHAR(60) NOT NULL,
51 anio INTEGER NOT NULL,
52 cuatrimestre INTEGER NOT NULL,
53 autor_id INT CONSTRAINT autor_id_exists REFERENCES docente(id),
54 descripcion VARCHAR(255),
55 creado TIMESTAMP NOT NULL,
56 archivo BLOB DEFAULT NULL,
57 archivo_name VARCHAR(255) DEFAULT NULL,
58 archivo_type VARCHAR(255) DEFAULT NULL
60 CREATE UNIQUE INDEX enunciado_pk ON enunciado (nombre, anio, cuatrimestre);
62 CREATE TABLE enunciado_tarea (
63 enunciado_id INTEGER NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
64 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
66 PRIMARY KEY (enunciado_id, tarea_id)
69 CREATE TABLE caso_de_prueba (
70 id INTEGER PRIMARY KEY,
71 enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
72 nombre VARCHAR(40) NOT NULL,
73 parametros VARCHAR(255) DEFAULT NULL,
76 descripcion VARCHAR(255)
78 CREATE UNIQUE INDEX caso_de_prueba_pk ON caso_de_prueba (enunciado_id, nombre);
80 CREATE TABLE ejercicio (
81 id INTEGER PRIMARY KEY,
82 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
84 enunciado_id INT NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
85 grupal TINYINT NOT NULL
87 CREATE UNIQUE INDEX ejercicio_pk ON ejercicio (curso_id, numero);
89 CREATE TABLE instancia_de_entrega (
90 id INTEGER PRIMARY KEY,
91 ejercicio_id INT NOT NULL CONSTRAINT ejercicio_id_exists REFERENCES ejercicio(id),
93 inicio TIMESTAMP NOT NULL,
94 fin TIMESTAMP NOT NULL,
95 procesada TINYINT NOT NULL,
97 activo TINYINT NOT NULL
100 CREATE TABLE instancia_tarea (
101 instancia_id INTEGER NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
102 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
104 PRIMARY KEY (instancia_id, tarea_id)
107 CREATE TABLE docente_inscripto (
108 id INTEGER PRIMARY KEY,
109 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
110 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente(id),
111 corrige TINYINT NOT NULL,
114 CREATE UNIQUE INDEX docente_inscripto_pk ON docente_inscripto (curso_id, docente_id);
116 CREATE TABLE entregador (
117 id INTEGER PRIMARY KEY,
118 child_name VARCHAR(255),
120 nota_cursada DECIMAL(3, 1),
122 activo TINYINT NOT NULL
126 id INTEGER PRIMARY KEY,
127 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
128 nombre VARCHAR(20) NOT NULL,
129 responsable_id INT CONSTRAINT responsable_id_exists REFERENCES alumno_inscripto(id)
132 CREATE TABLE alumno_inscripto (
133 id INTEGER PRIMARY KEY,
134 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
135 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno(id),
136 condicional TINYINT NOT NULL,
137 tutor_id INT CONSTRAINT tutor_id_exists REFERENCES docente_inscripto(id)
139 CREATE UNIQUE INDEX alumno_inscripto_pk ON alumno_inscripto (curso_id, alumno_id);
142 id INTEGER PRIMARY KEY,
143 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
144 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente_inscripto(id),
145 alta TIMESTAMP NOT NULL,
148 CREATE UNIQUE INDEX tutor_pk ON tutor (grupo_id, docente_id);
150 CREATE TABLE miembro (
151 id INTEGER PRIMARY KEY,
152 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
153 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno_inscripto(id),
155 alta TIMESTAMP NOT NULL,
158 CREATE UNIQUE INDEX miembro_pk ON miembro (grupo_id, alumno_id);
160 CREATE TABLE entrega (
161 id INTEGER PRIMARY KEY,
162 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
163 entregador_id INT CONSTRAINT entregador_id_exists REFERENCES entregador(id),
164 fecha TIMESTAMP NOT NULL,
165 correcta TINYINT NOT NULL,
168 CREATE UNIQUE INDEX entrega_pk ON entrega (instancia_id, entregador_id, fecha);
170 CREATE TABLE correccion (
171 id INTEGER PRIMARY KEY,
172 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
173 entregador_id INT NOT NULL CONSTRAINT entregador_id_exists REFERENCES entregador(id),
174 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
175 corrector_id INT NOT NULL CONSTRAINT corrector_id_exists REFERENCES docente_inscripto(id),
176 asignado TIMESTAMP NOT NULL,
181 CREATE UNIQUE INDEX correccion_pk ON correccion (instancia_id, entregador_id);
183 CREATE TABLE tarea_ejecutada (
184 id INTEGER PRIMARY KEY,
185 child_name VARCHAR(255),
186 tarea_id INT NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
187 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
188 inicio TIMESTAMP NOT NULL,
193 CREATE UNIQUE INDEX tarea_ejecutada_pk ON tarea_ejecutada (tarea_id, entrega_id);
195 CREATE TABLE prueba (
196 id INTEGER PRIMARY KEY,
197 tarea_ejecutada_id INT NOT NULL CONSTRAINT tarea_ejecutada_id_exists REFERENCES tarea_ejecutada(id),
198 caso_de_prueba_id INT NOT NULL CONSTRAINT caso_de_prueba_id_exists REFERENCES caso_de_prueba(id),
199 inicio TIMESTAMP NOT NULL,
204 CREATE UNIQUE INDEX prueba_pk ON prueba (tarea_ejecutada_id, caso_de_prueba_id);
206 CREATE TABLE visita (
207 id INTEGER PRIMARY KEY,
208 visit_key VARCHAR(40) NOT NULL UNIQUE,
209 created TIMESTAMP NOT NULL,
213 CREATE TABLE visita_usuario (
214 id INTEGER PRIMARY KEY,
215 visit_key VARCHAR(40) NOT NULL UNIQUE,
216 user_id INT CONSTRAINT usuario_id_exists REFERENCES usuario(id)
220 id INTEGER PRIMARY KEY,
221 nombre VARCHAR(255) NOT NULL UNIQUE,
222 descripcion VARCHAR(255),
223 creado TIMESTAMP NOT NULL,
224 permisos TEXT NOT NULL
227 CREATE TABLE rol_usuario (
229 usuario_id INT NOT NULL