modifica a 01_schema.sql
This commit is contained in:
parent
383d3a630d
commit
019ddd9ef1
1 changed files with 2 additions and 54 deletions
|
|
@ -8,7 +8,7 @@ USE corrieri;
|
||||||
-- ------------------------------------------------------------
|
-- ------------------------------------------------------------
|
||||||
-- Tabella utenti (API: GET/POST/PUT/DELETE /operatori)
|
-- Tabella utenti (API: GET/POST/PUT/DELETE /operatori)
|
||||||
-- ------------------------------------------------------------
|
-- ------------------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS operatore (
|
CREATE TABLE IF NOT EXISTS utente (
|
||||||
UtenteID INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
UtenteID INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
Nome VARCHAR(100) NOT NULL,
|
Nome VARCHAR(100) NOT NULL,
|
||||||
Cognome VARCHAR(100) NOT NULL,
|
Cognome VARCHAR(100) NOT NULL,
|
||||||
|
|
@ -48,7 +48,7 @@ CREATE TABLE IF NOT EXISTS cliente (
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------------------------------------------
|
-- ----------------------------------------------------------------
|
||||||
-- Tabella consegna (API: GET/POST/PUT/DELETE /prenotazioni)
|
-- Tabella consegna (API: GET/POST/PUT/DELETE /consegna)
|
||||||
-- ----------------------------------------------------------------
|
-- ----------------------------------------------------------------
|
||||||
CREATE TABLE IF NOT EXISTS consegna (
|
CREATE TABLE IF NOT EXISTS consegna (
|
||||||
ConsegnaID INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
ConsegnaID INT UNSIGNED NOT NULL AUTO_INCREMENT,
|
||||||
|
|
@ -62,9 +62,6 @@ CREATE TABLE IF NOT EXISTS consegna (
|
||||||
UNIQUE KEY uk_chiaveConsegna (ChiaveConsegna),
|
UNIQUE KEY uk_chiaveConsegna (ChiaveConsegna),
|
||||||
KEY idx_DataConsegna ( DataConsegna),
|
KEY idx_DataConsegna ( DataConsegna),
|
||||||
|
|
||||||
#CONSTRAINT ck_prenotazione_orario_valido
|
|
||||||
# CHECK (OraFine > OraInizio),
|
|
||||||
|
|
||||||
CONSTRAINT fk_consegna_cliente
|
CONSTRAINT fk_consegna_cliente
|
||||||
FOREIGN KEY (ClienteID)
|
FOREIGN KEY (ClienteID)
|
||||||
REFERENCES cliente (ClienteID)
|
REFERENCES cliente (ClienteID)
|
||||||
|
|
@ -74,52 +71,3 @@ CREATE TABLE IF NOT EXISTS consegna (
|
||||||
) ENGINE=InnoDB
|
) ENGINE=InnoDB
|
||||||
DEFAULT CHARSET=utf8mb4
|
DEFAULT CHARSET=utf8mb4
|
||||||
COLLATE=utf8mb4_unicode_ci;
|
COLLATE=utf8mb4_unicode_ci;
|
||||||
|
|
||||||
|
|
||||||
-- ----------------------------------------------------------------
|
|
||||||
-- Trigger anti-sovrapposizione (stesso campo, stessa data)
|
|
||||||
-- Le prenotazioni annullate non occupano lo slot.
|
|
||||||
-- ----------------------------------------------------------------
|
|
||||||
#DROP TRIGGER IF EXISTS trg_prenotazione_no_overlap_insert;
|
|
||||||
#DROP TRIGGER IF EXISTS trg_prenotazione_no_overlap_update;
|
|
||||||
|
|
||||||
#DELIMITER $$
|
|
||||||
|
|
||||||
#CREATE TRIGGER trg_prenotazione_no_overlap_insert
|
|
||||||
#BEFORE INSERT ON corrieri
|
|
||||||
#FOR EACH ROW
|
|
||||||
#BEGIN
|
|
||||||
# IF NEW.Stato <> 'annullata' AND EXISTS (
|
|
||||||
# SELECT 1
|
|
||||||
# FROM corrieri AS p
|
|
||||||
# WHERE p.CampoID = NEW.CampoID
|
|
||||||
# AND p.Data = NEW.Data
|
|
||||||
# AND p.Stato <> 'annullata'
|
|
||||||
# AND NEW.OraInizio < p.OraFine
|
|
||||||
# AND p.OraInizio < NEW.OraFine
|
|
||||||
# ) THEN
|
|
||||||
# SIGNAL SQLSTATE '45000'
|
|
||||||
# SET MESSAGE_TEXT = 'Sovrapposizione: esiste già una prenotazione attiva in questo orario per il campo selezionato';
|
|
||||||
# END IF;
|
|
||||||
#END$$
|
|
||||||
|
|
||||||
#CREATE TRIGGER trg_prenotazione_no_overlap_update
|
|
||||||
#BEFORE UPDATE ON corrieri
|
|
||||||
#FOR EACH ROW
|
|
||||||
#BEGIN
|
|
||||||
# IF NEW.Stato <> 'annullata' AND EXISTS (
|
|
||||||
# SELECT 1
|
|
||||||
# FROM corrieri AS p
|
|
||||||
# WHERE p.PrenotazioneID <> NEW.PrenotazioneID
|
|
||||||
# AND p.CampoID = NEW.CampoID
|
|
||||||
# AND p.Data = NEW.Data
|
|
||||||
# AND p.Stato <> 'annullata'
|
|
||||||
# AND NEW.OraInizio < p.OraFine
|
|
||||||
# AND p.OraInizio < NEW.OraFine
|
|
||||||
# ) THEN
|
|
||||||
# SIGNAL SQLSTATE '45000'
|
|
||||||
# SET MESSAGE_TEXT = 'Sovrapposizione: esiste già una prenotazione attiva in questo orario per il campo selezionato';
|
|
||||||
# END IF;
|
|
||||||
#END$$
|
|
||||||
|
|
||||||
#DELIMITER ;
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue