Untitled

mail@pastecode.io avatar
unknown
plain_text
a year ago
1.3 kB
1
Indexable
Never
PRAGMA foreign_keys = ON;
.headers on
.mode column
/*CREACIÓN DE TABLAS*/

DROP TABLE IF EXISTS espacio;

CREATE TABLE espacio (
    id_espacio INTEGER PRIMARY KEY AUTOINCREMENT,
    nombre TEXT,
    descripcion TEXT,
    capacidad INTEGER,
    ordenador INTEGER,
    pizarra INTEGER,
    proyector INTEGER,
    CHECK (nombre regexp '^[a-zA-ZñÑáéíóúÁÉÍÓÚ]+$'),
    CHECK (capacidad BETWEEN 0 AND 30),
    CHECK (ordenador IN (0,1)),
    CHECK (pizarra IN (0,1)),
    CHECK (proyector IN (0,1))
);

DROP TABLE IF EXISTS reserva;

CREATE TABLE reserva (
    codigo_reserva INTEGER PRIMARY KEY AUTOINCREMENT,
    duracion INTEGER,
    hora INTEGER,
    motivo TEXT,
    fecha_reserva TEXT,
    id_espacio INTEGER,
    FOREIGN KEY (id_espacio) REFERENCES espacio(id_espacio)
);

CREATE INDEX recursos on espacio(ordenador, pizarra, proyector);
DROP VIEW IF EXISTS datos_reserva;

CREATE VIEW datos_reserva AS SELECT cod_reserva, hora, fecha_reserva, nombre, capacidad, ordenador, pizarra, proyector from reserva, espacio where reserva.id_espacio = espacio.id_espacio;
CREATE TRIGGER borrado_espacio before delete ON ESPACIO
BEGIN
    INSERT INTO historial_espacio (nombre , descripcion, fecha ) values (old.nombre , old.descripcion , DATATIME());
END;