Esempio di automazione di un sistema di gestione e consultazione online delle consegne pacchi, con:
- analisi del problema
- progettazione database
- creazione tabelle SQL
- esempi di query operative reali
Userò SQL standard compatibile con MySQL / PostgreSQL (con piccole variazioni minime).
Sistema di gestione e monitoraggio consegne pacchi.
1. Scenario reale.
Un’azienda di spedizioni deve:
- registrare mittenti e destinatari
- gestire spedizioni e tracking pacchi
- registrare passaggi logistici
- permettere ai clienti di controllare lo stato delle consegne online
- gestire operatori e corrieri
2. Funzionalità principali.
– Registrazione spedizioni
– Assegnazione corrieri
– Tracking in tempo reale
– Storico movimentazioni
– Consultazione online stato spedizione
3. Progettazione del Database.
Tabelle principali
- CLIENTI
- CORRIERI
- SPEDIZIONI
- TRACCIAMENTI (tracking eventi)
- MAGAZZINI
4. Creazione Tabelle SQL.
Tabella CLIENTI
CREATE TABLE Clienti (
idCliente INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(50) NOT NULL,
cognome VARCHAR(50) NOT NULL,
email VARCHAR(100) UNIQUE,
telefono VARCHAR(20),
indirizzo VARCHAR(150)
);
Tabella CORRIERI
CREATE TABLE Corrieri (
idCorriere INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(50),
cognome VARCHAR(50),
telefono VARCHAR(20),
mezzo VARCHAR(50)
);
Tabella MAGAZZINI
CREATE TABLE Magazzini (
idMagazzino INT PRIMARY KEY AUTO_INCREMENT,
nome VARCHAR(100),
citta VARCHAR(50),
indirizzo VARCHAR(150)
);
Tabella SPEDIZIONI
CREATE TABLE Spedizioni (
idSpedizione INT PRIMARY KEY AUTO_INCREMENT,
codiceTracking VARCHAR(30) UNIQUE NOT NULL,
idMittente INT,
idDestinatario INT,
idCorriere INT,
peso DECIMAL(6,2),
dataSpedizione DATE,
dataConsegnaPrevista DATE,
stato VARCHAR(50),
FOREIGN KEY (idMittente) REFERENCES Clienti(idCliente),
FOREIGN KEY (idDestinatario) REFERENCES Clienti(idCliente),
FOREIGN KEY (idCorriere) REFERENCES Corrieri(idCorriere)
);
Tabella TRACCIAMENTI (Tracking eventi)
CREATE TABLE Tracciamenti (
idEvento INT PRIMARY KEY AUTO_INCREMENT,
idSpedizione INT,
dataEvento DATETIME,
descrizione VARCHAR(200),
idMagazzino INT,
FOREIGN KEY (idSpedizione) REFERENCES Spedizioni(idSpedizione),
FOREIGN KEY (idMagazzino) REFERENCES Magazzini(idMagazzino)
);
5. Inserimento dati di esempio
Inserimento clienti
INSERT INTO Clienti (nome, cognome, email, telefono, indirizzo)
VALUES
(‘Mario’, ‘Rossi’, ‘mario@email.it’, ‘333123456’, ‘Via Roma 10’),
(‘Luca’, ‘Bianchi’, ‘luca@email.it’, ‘333654321’, ‘Via Milano 22’);
Inserimento corriere
INSERT INTO Corrieri (nome, cognome, telefono, mezzo)
VALUES (‘Gianni’, ‘Verdi’, ‘333987654’, ‘Furgone’);
Inserimento magazzino
INSERT INTO Magazzini (nome, citta, indirizzo)
VALUES (‘Hub Venezia’, ‘Venezia’, ‘Via Porto 5’);
Inserimento spedizione
INSERT INTO Spedizioni
(codiceTracking, idMittente, idDestinatario, idCorriere, peso, dataSpedizione, dataConsegnaPrevista, stato)
VALUES
(‘TRK123456’, 1, 2, 1, 2.5, ‘2026-02-12’, ‘2026-02-14’, ‘In transito’);
Inserimento evento tracking
INSERT INTO Tracciamenti
(idSpedizione, dataEvento, descrizione, idMagazzino)
VALUES
(1, NOW(), ‘Pacco arrivato al centro smistamento’, 1);
6. Query SQL operative
Visualizzare tutte le spedizioni
SELECT * FROM Spedizioni;
Visualizzare tracking completo di un pacco
SELECT S.codiceTracking, T.dataEvento, T.descrizione, M.nome
FROM Tracciamenti T
JOIN Spedizioni S ON T.idSpedizione = S.idSpedizione
JOIN Magazzini M ON T.idMagazzino = M.idMagazzino
WHERE S.codiceTracking = ‘TRK123456’
ORDER BY T.dataEvento;
Visualizzare spedizioni di un cliente
SELECT codiceTracking, stato
FROM Spedizioni
WHERE idMittente = 1;
Spedizioni assegnate a un corriere
SELECT codiceTracking, stato
FROM Spedizioni
WHERE idCorriere = 1;
Pacchi consegnati in un certo periodo
SELECT codiceTracking, dataConsegnaPrevista
FROM Spedizioni
WHERE stato = ‘Consegnato’
AND dataConsegnaPrevista BETWEEN ‘2026-02-01’ AND ‘2026-02-28’;
Ultimo stato di ogni spedizione
SELECT S.codiceTracking, MAX(T.dataEvento) AS UltimoAggiornamento
FROM Spedizioni S
JOIN Tracciamenti T ON S.idSpedizione = T.idSpedizione
GROUP BY S.codiceTracking;
7. Automazioni possibili
– Aggiornamento automatico tracking
– Invio SMS/email cliente
– Dashboard stato spedizioni
– Report performance corrieri
– Integrazione con GPS mezzi
8. Possibili miglioramenti del sistema
- Firma digitale alla consegna
- Foto consegna pacco
- App mobile corrieri
- Analisi ritardi spedizioni
- Integrazione con sistemi e-commerce
Vantaggi del sistema
- Tracciabilità completa spedizioni
- Riduzione errori manuali
- Accesso dati in tempo reale
- Migliore servizio clienti
