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 descripcion VARCHAR(255),
52 autor_id INT CONSTRAINT autor_id_exists REFERENCES docente(id),
53 creado TIMESTAMP NOT NULL
56 CREATE TABLE enunciado_tarea (
57 enunciado_id INTEGER NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
58 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
60 PRIMARY KEY (enunciado_id, tarea_id)
63 CREATE TABLE caso_de_prueba (
64 id INTEGER PRIMARY KEY,
65 enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
66 nombre VARCHAR(40) NOT NULL,
67 parametros TEXT NOT NULL,
70 descripcion VARCHAR(255)
72 CREATE UNIQUE INDEX caso_de_prueba_pk ON caso_de_prueba (enunciado_id, nombre);
74 CREATE TABLE ejercicio (
75 id INTEGER PRIMARY KEY,
76 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
78 enunciado_id INT NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
79 grupal TINYINT NOT NULL
81 CREATE UNIQUE INDEX ejercicio_pk ON ejercicio (curso_id, numero);
83 CREATE TABLE instancia_de_entrega (
84 id INTEGER PRIMARY KEY,
85 ejercicio_id INT NOT NULL CONSTRAINT ejercicio_id_exists REFERENCES ejercicio(id),
87 inicio TIMESTAMP NOT NULL,
88 fin TIMESTAMP NOT NULL,
89 procesada TINYINT NOT NULL,
91 activo TINYINT NOT NULL
94 CREATE TABLE instancia_tarea (
95 instancia_id INTEGER NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
96 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
98 PRIMARY KEY (instancia_id, tarea_id)
101 CREATE TABLE docente_inscripto (
102 id INTEGER PRIMARY KEY,
103 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
104 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente(id),
105 corrige TINYINT NOT NULL,
108 CREATE UNIQUE INDEX docente_inscripto_pk ON docente_inscripto (curso_id, docente_id);
110 CREATE TABLE entregador (
111 id INTEGER PRIMARY KEY,
112 child_name VARCHAR(255),
114 nota_cursada DECIMAL(3, 1),
116 activo TINYINT NOT NULL
120 id INTEGER PRIMARY KEY,
121 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
122 nombre VARCHAR(20) NOT NULL,
123 responsable_id INT CONSTRAINT responsable_id_exists REFERENCES alumno_inscripto(id)
126 CREATE TABLE alumno_inscripto (
127 id INTEGER PRIMARY KEY,
128 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
129 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno(id),
130 condicional TINYINT NOT NULL,
131 tutor_id INT CONSTRAINT tutor_id_exists REFERENCES docente_inscripto(id)
133 CREATE UNIQUE INDEX alumno_inscripto_pk ON alumno_inscripto (curso_id, alumno_id);
136 id INTEGER PRIMARY KEY,
137 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
138 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente_inscripto(id),
139 alta TIMESTAMP NOT NULL,
142 CREATE UNIQUE INDEX tutor_pk ON tutor (grupo_id, docente_id);
144 CREATE TABLE miembro (
145 id INTEGER PRIMARY KEY,
146 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
147 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno_inscripto(id),
149 alta TIMESTAMP NOT NULL,
152 CREATE UNIQUE INDEX miembro_pk ON miembro (grupo_id, alumno_id);
154 CREATE TABLE entrega (
155 id INTEGER PRIMARY KEY,
156 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
157 entregador_id INT CONSTRAINT entregador_id_exists REFERENCES entregador(id),
158 fecha TIMESTAMP NOT NULL,
159 correcta TINYINT NOT NULL,
162 CREATE UNIQUE INDEX entrega_pk ON entrega (instancia_id, entregador_id, fecha);
164 CREATE TABLE correccion (
165 id INTEGER PRIMARY KEY,
166 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
167 entregador_id INT NOT NULL CONSTRAINT entregador_id_exists REFERENCES entregador(id),
168 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
169 corrector_id INT NOT NULL CONSTRAINT corrector_id_exists REFERENCES docente_inscripto(id),
170 asignado TIMESTAMP NOT NULL,
175 CREATE UNIQUE INDEX correccion_pk ON correccion (instancia_id, entregador_id);
177 CREATE TABLE tarea_ejecutada (
178 id INTEGER PRIMARY KEY,
179 child_name VARCHAR(255),
180 tarea_id INT NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
181 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
182 inicio TIMESTAMP NOT NULL,
187 CREATE UNIQUE INDEX tarea_ejecutada_pk ON tarea_ejecutada (tarea_id, entrega_id);
189 CREATE TABLE prueba (
190 id INTEGER PRIMARY KEY,
191 tarea_ejecutada_id INT NOT NULL CONSTRAINT tarea_ejecutada_id_exists REFERENCES tarea_ejecutada(id),
192 caso_de_prueba_id INT NOT NULL CONSTRAINT caso_de_prueba_id_exists REFERENCES caso_de_prueba(id),
193 inicio TIMESTAMP NOT NULL,
198 CREATE UNIQUE INDEX prueba_pk ON prueba (tarea_ejecutada_id, caso_de_prueba_id);
200 CREATE TABLE visita (
201 id INTEGER PRIMARY KEY,
202 visit_key VARCHAR(40) NOT NULL UNIQUE,
203 created TIMESTAMP NOT NULL,
207 CREATE TABLE visita_usuario (
208 id INTEGER PRIMARY KEY,
209 visit_key VARCHAR(40) NOT NULL UNIQUE,
210 user_id INT CONSTRAINT usuario_id_exists REFERENCES usuario(id)
214 id INTEGER PRIMARY KEY,
215 nombre VARCHAR(255) NOT NULL UNIQUE,
216 descripcion VARCHAR(255),
217 creado TIMESTAMP NOT NULL,
218 permisos TEXT NOT NULL
221 CREATE TABLE rol_usuario (
223 usuario_id INT NOT NULL