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 UNIQUE,
51 autor_id INT CONSTRAINT autor_id_exists REFERENCES docente(id),
52 descripcion VARCHAR(255),
53 creado TIMESTAMP NOT NULL,
54 archivo BLOB DEFAULT NULL,
55 archivo_name VARCHAR(255) DEFAULT NULL,
56 archivo_type VARCHAR(255) DEFAULT NULL
59 CREATE TABLE enunciado_tarea (
60 enunciado_id INTEGER NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
61 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
63 PRIMARY KEY (enunciado_id, tarea_id)
66 CREATE TABLE caso_de_prueba (
67 id INTEGER PRIMARY KEY,
68 enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
69 nombre VARCHAR(40) NOT NULL,
70 parametros VARCHAR(255) DEFAULT NULL,
73 descripcion VARCHAR(255)
75 CREATE UNIQUE INDEX caso_de_prueba_pk ON caso_de_prueba (enunciado_id, nombre);
77 CREATE TABLE ejercicio (
78 id INTEGER PRIMARY KEY,
79 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
81 enunciado_id INT NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
82 grupal TINYINT NOT NULL
84 CREATE UNIQUE INDEX ejercicio_pk ON ejercicio (curso_id, numero);
86 CREATE TABLE instancia_de_entrega (
87 id INTEGER PRIMARY KEY,
88 ejercicio_id INT NOT NULL CONSTRAINT ejercicio_id_exists REFERENCES ejercicio(id),
90 inicio TIMESTAMP NOT NULL,
91 fin TIMESTAMP NOT NULL,
92 procesada TINYINT NOT NULL,
94 activo TINYINT NOT NULL
97 CREATE TABLE instancia_tarea (
98 instancia_id INTEGER NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
99 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
101 PRIMARY KEY (instancia_id, tarea_id)
104 CREATE TABLE docente_inscripto (
105 id INTEGER PRIMARY KEY,
106 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
107 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente(id),
108 corrige TINYINT NOT NULL,
111 CREATE UNIQUE INDEX docente_inscripto_pk ON docente_inscripto (curso_id, docente_id);
113 CREATE TABLE entregador (
114 id INTEGER PRIMARY KEY,
115 child_name VARCHAR(255),
117 nota_cursada DECIMAL(3, 1),
119 activo TINYINT NOT NULL
123 id INTEGER PRIMARY KEY,
124 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
125 nombre VARCHAR(20) NOT NULL,
126 responsable_id INT CONSTRAINT responsable_id_exists REFERENCES alumno_inscripto(id)
129 CREATE TABLE alumno_inscripto (
130 id INTEGER PRIMARY KEY,
131 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
132 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno(id),
133 condicional TINYINT NOT NULL,
134 tutor_id INT CONSTRAINT tutor_id_exists REFERENCES docente_inscripto(id)
136 CREATE UNIQUE INDEX alumno_inscripto_pk ON alumno_inscripto (curso_id, alumno_id);
139 id INTEGER PRIMARY KEY,
140 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
141 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente_inscripto(id),
142 alta TIMESTAMP NOT NULL,
145 CREATE UNIQUE INDEX tutor_pk ON tutor (grupo_id, docente_id);
147 CREATE TABLE miembro (
148 id INTEGER PRIMARY KEY,
149 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
150 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno_inscripto(id),
152 alta TIMESTAMP NOT NULL,
155 CREATE UNIQUE INDEX miembro_pk ON miembro (grupo_id, alumno_id);
157 CREATE TABLE entrega (
158 id INTEGER PRIMARY KEY,
159 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
160 entregador_id INT CONSTRAINT entregador_id_exists REFERENCES entregador(id),
161 fecha TIMESTAMP NOT NULL,
162 correcta TINYINT NOT NULL,
165 CREATE UNIQUE INDEX entrega_pk ON entrega (instancia_id, entregador_id, fecha);
167 CREATE TABLE correccion (
168 id INTEGER PRIMARY KEY,
169 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
170 entregador_id INT NOT NULL CONSTRAINT entregador_id_exists REFERENCES entregador(id),
171 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
172 corrector_id INT NOT NULL CONSTRAINT corrector_id_exists REFERENCES docente_inscripto(id),
173 asignado TIMESTAMP NOT NULL,
178 CREATE UNIQUE INDEX correccion_pk ON correccion (instancia_id, entregador_id);
180 CREATE TABLE tarea_ejecutada (
181 id INTEGER PRIMARY KEY,
182 child_name VARCHAR(255),
183 tarea_id INT NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
184 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
185 inicio TIMESTAMP NOT NULL,
190 CREATE UNIQUE INDEX tarea_ejecutada_pk ON tarea_ejecutada (tarea_id, entrega_id);
192 CREATE TABLE prueba (
193 id INTEGER PRIMARY KEY,
194 tarea_ejecutada_id INT NOT NULL CONSTRAINT tarea_ejecutada_id_exists REFERENCES tarea_ejecutada(id),
195 caso_de_prueba_id INT NOT NULL CONSTRAINT caso_de_prueba_id_exists REFERENCES caso_de_prueba(id),
196 inicio TIMESTAMP NOT NULL,
201 CREATE UNIQUE INDEX prueba_pk ON prueba (tarea_ejecutada_id, caso_de_prueba_id);
203 CREATE TABLE visita (
204 id INTEGER PRIMARY KEY,
205 visit_key VARCHAR(40) NOT NULL UNIQUE,
206 created TIMESTAMP NOT NULL,
210 CREATE TABLE visita_usuario (
211 id INTEGER PRIMARY KEY,
212 visit_key VARCHAR(40) NOT NULL UNIQUE,
213 user_id INT CONSTRAINT usuario_id_exists REFERENCES usuario(id)
217 id INTEGER PRIMARY KEY,
218 nombre VARCHAR(255) NOT NULL UNIQUE,
219 descripcion VARCHAR(255),
220 creado TIMESTAMP NOT NULL,
221 permisos TEXT NOT NULL
224 CREATE TABLE rol_usuario (
226 usuario_id INT NOT NULL