Vaya al Contenido

Protocolo Sanitario - Iasca Internacional

TEL. 5585517895    CORREO: contacto@corporativoloruna.com
Iasca Internacional
Saltar menú
-- ===== 0) Base de datos ===== CREATE DATABASE IF NOT EXISTS iasca CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; USE iasca; -- ===== 1) Catálogos ===== CREATE TABLE categorias_competencia ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(20) NOT NULL, PRIMARY KEY (id), UNIQUE KEY uq_categoria_nombre (nombre) ) ENGINE=InnoDB; CREATE TABLE criterios ( id INT NOT NULL AUTO_INCREMENT, seccion ENUM( 'PRESENTACION', 'EXTERIOR', 'MOTOR', 'INTERIOR', 'AUDIO_Y_SEGURIDAD', 'PUNTOS_EXTRAS' ) NOT NULL, nombre VARCHAR(80) NOT NULL, orden INT NOT NULL, PRIMARY KEY (id), UNIQUE KEY uq_criterio (seccion, nombre), KEY idx_criterios_seccion_orden (seccion, orden) ) ENGINE=InnoDB; -- ===== 2) Entidades ===== CREATE TABLE jueces ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(120) NOT NULL, PRIMARY KEY (id) ) ENGINE=InnoDB; CREATE TABLE competidores ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(120) NOT NULL, direccion VARCHAR(200) NULL, team_club VARCHAR(120) NULL, email VARCHAR(120) NULL, firma_nombre VARCHAR(120) NULL, identificacion VARCHAR(50) NULL, -- campo "ID" de la hoja PRIMARY KEY (id), KEY idx_competidores_nombre (nombre), KEY idx_competidores_idext (identificacion) ) ENGINE=InnoDB; CREATE TABLE vehiculos ( id INT NOT NULL AUTO_INCREMENT, anio SMALLINT NULL, marca VARCHAR(80) NULL, modelo VARCHAR(80) NULL, color VARCHAR(60) NULL, version VARCHAR(60) NULL, estado VARCHAR(60) NULL, ciudad VARCHAR(80) NULL, tel VARCHAR(40) NULL, PRIMARY KEY (id), KEY idx_vehiculos_marca_modelo (marca, modelo), KEY idx_vehiculos_anio (anio) ) ENGINE=InnoDB; -- ===== 3) Evento + Evaluación ===== CREATE TABLE eventos ( id INT NOT NULL AUTO_INCREMENT, nombre VARCHAR(120) NOT NULL, fecha DATE NOT NULL, PRIMARY KEY (id), KEY idx_eventos_fecha (fecha) ) ENGINE=InnoDB; CREATE TABLE evaluaciones ( id INT NOT NULL AUTO_INCREMENT, evento_id INT NOT NULL, juez_id INT NOT NULL, competidor_id INT NOT NULL, vehiculo_id INT NOT NULL, categoria_id INT NOT NULL, folio VARCHAR(50) NULL, -- campo "EVALUACION ____" observaciones TEXT NULL, total INT NULL, -- opcional (puedes calcularlo en consulta) created_at TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP, PRIMARY KEY (id), KEY idx_eval_evento (evento_id), KEY idx_eval_juez (juez_id), KEY idx_eval_competidor (competidor_id), KEY idx_eval_vehiculo (vehiculo_id), KEY idx_eval_categoria (categoria_id), UNIQUE KEY uq_eval_folio_evento (evento_id, folio), CONSTRAINT fk_eval_evento FOREIGN KEY (evento_id) REFERENCES eventos(id), CONSTRAINT fk_eval_juez FOREIGN KEY (juez_id) REFERENCES jueces(id), CONSTRAINT fk_eval_competidor FOREIGN KEY (competidor_id) REFERENCES competidores(id), CONSTRAINT fk_eval_vehiculo FOREIGN KEY (vehiculo_id) REFERENCES vehiculos(id), CONSTRAINT fk_eval_categoria FOREIGN KEY (categoria_id) REFERENCES categorias_competencia(id) ) ENGINE=InnoDB; CREATE TABLE evaluacion_puntajes ( id BIGINT NOT NULL AUTO_INCREMENT, evaluacion_id INT NOT NULL, criterio_id INT NOT NULL, puntaje TINYINT NOT NULL, PRIMARY KEY (id), UNIQUE KEY uq_eval_criterio (evaluacion_id, criterio_id), KEY idx_ep_eval (evaluacion_id), KEY idx_ep_criterio (criterio_id), CONSTRAINT ck_puntaje_1_10 CHECK (puntaje BETWEEN 1 AND 10), CONSTRAINT fk_ep_eval FOREIGN KEY (evaluacion_id) REFERENCES evaluaciones(id) ON DELETE CASCADE, CONSTRAINT fk_ep_criterio FOREIGN KEY (criterio_id) REFERENCES criterios(id) ) ENGINE=InnoDB; -- ===== 4) Datos iniciales ===== INSERT INTO categorias_competencia (nombre) VALUES ('ROOKIE'), ('STREET'), ('ULTIMATE'); -- PRESENTACION INSERT INTO criterios (seccion, nombre, orden) VALUES ('PRESENTACION','PRESENTACION',1), ('PRESENTACION','ESCENARIO',2); -- EXTERIOR INSERT INTO criterios (seccion, nombre, orden) VALUES ('EXTERIOR','TEMATICA',1), ('EXTERIOR','INTEGRACION',2), ('EXTERIOR','APARIENCIA',3), ('EXTERIOR','MODIFICACIONES',4), ('EXTERIOR','APLICACION_PINTURA_VINILOS',5), ('EXTERIOR','LIMPIEZA',6); -- MOTOR INSERT INTO criterios (seccion, nombre, orden) VALUES ('MOTOR','APARIENCIA',1), ('MOTOR','INTEGRACION',2), ('MOTOR','MODIFICACIONES',3), ('MOTOR','LIMPIEZA',4); -- INTERIOR INSERT INTO criterios (seccion, nombre, orden) VALUES ('INTERIOR','APARIENCIA',1), ('INTERIOR','TEMATICA',2), ('INTERIOR','INTEGRACION',3), ('INTERIOR','MODIFICACIONES',4), ('INTERIOR','LIMPIEZA',5); -- AUDIO Y SEGURIDAD INSERT INTO criterios (seccion, nombre, orden) VALUES ('AUDIO_Y_SEGURIDAD','APARIENCIA',1), ('AUDIO_Y_SEGURIDAD','CREATIVIDAD',2), ('AUDIO_Y_SEGURIDAD','SISTEMA_DE_SEGURIDAD',3), ('AUDIO_Y_SEGURIDAD','SEGURIDAD',4); -- PUNTOS EXTRAS INSERT INTO criterios (seccion, nombre, orden) VALUES ('PUNTOS_EXTRAS','BITACORA',1), ('PUNTOS_EXTRAS','FUNCIONALIDAD',2), ('PUNTOS_EXTRAS','ERGONOMIA',3), ('PUNTOS_EXTRAS','ILUMINACION',4), ('PUNTOS_EXTRAS','MOTORIZACIONES',5);
Regreso al contenido