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 caso_de_prueba (
57 id INTEGER PRIMARY KEY,
58 enunciado_id INT CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
59 nombre VARCHAR(40) NOT NULL,
60 parametros TEXT NOT NULL,
63 descripcion VARCHAR(255)
65 CREATE UNIQUE INDEX caso_de_prueba_pk ON caso_de_prueba (enunciado_id, nombre);
67 CREATE TABLE ejercicio (
68 id INTEGER PRIMARY KEY,
69 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
71 enunciado_id INT NOT NULL CONSTRAINT enunciado_id_exists REFERENCES enunciado(id),
72 grupal TINYINT NOT NULL
74 CREATE UNIQUE INDEX ejercicio_pk ON ejercicio (curso_id, numero);
76 CREATE TABLE instancia_de_entrega (
77 id INTEGER PRIMARY KEY,
78 ejercicio_id INT NOT NULL CONSTRAINT ejercicio_id_exists REFERENCES ejercicio(id),
80 inicio TIMESTAMP NOT NULL,
81 fin TIMESTAMP NOT NULL,
82 procesada TINYINT NOT NULL,
84 activo TINYINT NOT NULL
87 CREATE TABLE instancia_tarea (
88 instancia_id INTEGER NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
89 tarea_id INTEGER NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
91 PRIMARY KEY (instancia_id, tarea_id)
94 CREATE TABLE docente_inscripto (
95 id INTEGER PRIMARY KEY,
96 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
97 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente(id),
98 corrige TINYINT NOT NULL,
101 CREATE UNIQUE INDEX docente_inscripto_pk ON docente_inscripto (curso_id, docente_id);
103 CREATE TABLE entregador (
104 id INTEGER PRIMARY KEY,
105 child_name VARCHAR(255),
107 nota_cursada DECIMAL(3, 1),
109 activo TINYINT NOT NULL
113 id INTEGER PRIMARY KEY,
114 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
115 nombre VARCHAR(20) NOT NULL,
116 responsable_id INT CONSTRAINT responsable_id_exists REFERENCES alumno_inscripto(id)
119 CREATE TABLE alumno_inscripto (
120 id INTEGER PRIMARY KEY,
121 curso_id INT NOT NULL CONSTRAINT curso_id_exists REFERENCES curso(id),
122 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno(id),
123 condicional TINYINT NOT NULL,
124 tutor_id INT CONSTRAINT tutor_id_exists REFERENCES docente_inscripto(id)
126 CREATE UNIQUE INDEX alumno_inscripto_pk ON alumno_inscripto (curso_id, alumno_id);
129 id INTEGER PRIMARY KEY,
130 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
131 docente_id INT NOT NULL CONSTRAINT docente_id_exists REFERENCES docente_inscripto(id),
132 alta TIMESTAMP NOT NULL,
135 CREATE UNIQUE INDEX tutor_pk ON tutor (grupo_id, docente_id);
137 CREATE TABLE miembro (
138 id INTEGER PRIMARY KEY,
139 grupo_id INT NOT NULL CONSTRAINT grupo_id_exists REFERENCES grupo(id),
140 alumno_id INT NOT NULL CONSTRAINT alumno_id_exists REFERENCES alumno_inscripto(id),
142 alta TIMESTAMP NOT NULL,
145 CREATE UNIQUE INDEX miembro_pk ON miembro (grupo_id, alumno_id);
147 CREATE TABLE entrega (
148 id INTEGER PRIMARY KEY,
149 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
150 entregador_id INT CONSTRAINT entregador_id_exists REFERENCES entregador(id),
151 fecha TIMESTAMP NOT NULL,
152 correcta TINYINT NOT NULL,
155 CREATE UNIQUE INDEX entrega_pk ON entrega (instancia_id, entregador_id, fecha);
157 CREATE TABLE correccion (
158 id INTEGER PRIMARY KEY,
159 instancia_id INT NOT NULL CONSTRAINT instancia_id_exists REFERENCES instancia_de_entrega(id),
160 entregador_id INT NOT NULL CONSTRAINT entregador_id_exists REFERENCES entregador(id),
161 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
162 corrector_id INT NOT NULL CONSTRAINT corrector_id_exists REFERENCES docente_inscripto(id),
163 asignado TIMESTAMP NOT NULL,
168 CREATE UNIQUE INDEX correccion_pk ON correccion (instancia_id, entregador_id);
170 CREATE TABLE tarea_ejecutada (
171 id INTEGER PRIMARY KEY,
172 child_name VARCHAR(255),
173 tarea_id INT NOT NULL CONSTRAINT tarea_id_exists REFERENCES tarea(id),
174 entrega_id INT NOT NULL CONSTRAINT entrega_id_exists REFERENCES entrega(id),
175 inicio TIMESTAMP NOT NULL,
180 CREATE UNIQUE INDEX tarea_ejecutada_pk ON tarea_ejecutada (tarea_id, entrega_id);
182 CREATE TABLE prueba (
183 id INTEGER PRIMARY KEY,
184 tarea_ejecutada_id INT NOT NULL CONSTRAINT tarea_ejecutada_id_exists REFERENCES tarea_ejecutada(id),
185 caso_de_prueba_id INT NOT NULL CONSTRAINT caso_de_prueba_id_exists REFERENCES caso_de_prueba(id),
186 inicio TIMESTAMP NOT NULL,
191 CREATE UNIQUE INDEX prueba_pk ON prueba (tarea_ejecutada_id, caso_de_prueba_id);
193 CREATE TABLE visita (
194 id INTEGER PRIMARY KEY,
195 visit_key VARCHAR(40) NOT NULL UNIQUE,
196 created TIMESTAMP NOT NULL,
200 CREATE TABLE visita_usuario (
201 id INTEGER PRIMARY KEY,
202 visit_key VARCHAR(40) NOT NULL UNIQUE,
203 user_id INT CONSTRAINT usuario_id_exists REFERENCES usuario(id)
207 id INTEGER PRIMARY KEY,
208 nombre VARCHAR(255) NOT NULL UNIQUE,
209 descripcion VARCHAR(255),
210 creado TIMESTAMP NOT NULL,
211 permisos TEXT NOT NULL
214 CREATE TABLE rol_usuario (
216 usuario_id INT NOT NULL