Normalmente, la logica di business di un'applicazione risiede nel codice lato server (es. in PHP). Tuttavia, i moderni database relazionali come MySQL permettono di archiviare ed eseguire logica direttamente al loro interno, tramite le Stored Procedures e i Trigger.
Stored Procedures (Procedure Archiviate)
Una stored procedure è un insieme di istruzioni SQL pre-compilate e salvate nel database con un nome. Invece di inviare più query dall'applicazione, puoi semplicemente "chiamare" la stored procedure, passandole dei parametri.
Vantaggi
- Performance: Essendo pre-compilate e archiviate sul server del database, sono spesso più veloci dell'invio di query singole, specialmente per operazioni complesse, perché riducono il traffico di rete.
- Riutilizzo del Codice: Se più applicazioni devono eseguire la stessa logica complessa, puoi centralizzarla in una stored procedure invece di duplicarla in ogni applicazione.
- Sicurezza: Puoi dare a un'applicazione il permesso di eseguire solo una specifica stored procedure, senza darle accesso diretto alle tabelle sottostanti. Questo limita la superficie di attacco.
Esempio: Una procedura per registrare un nuovo utente che crea il record nella tabella `users` e contemporaneamente crea un record di log nella tabella `audit`.
Triggers (Inneschi)
Un trigger è un tipo speciale di stored procedure che viene eseguito automaticamente in risposta a un evento specifico su una tabella. Gli eventi sono `INSERT`, `UPDATE` o `DELETE`.
Puoi definire un trigger che si attivi `BEFORE` (prima) o `AFTER` (dopo) l'evento.
Vantaggi
- Automazione e Integrità dei Dati: Sono perfetti per applicare regole di business complesse e per mantenere l'integrità dei dati.
- Auditing: Un trigger `AFTER INSERT` su una tabella di ordini può salvare automaticamente una riga in una tabella di log ogni volta che viene creato un nuovo ordine.
- Mantenere Dati Denormalizzati: Un trigger `AFTER UPDATE` su una tabella `products` può aggiornare automaticamente un campo `total_price` in una tabella `invoices` ogni volta che il prezzo di un prodotto cambia.
Svantaggi (di Entrambi)
L'abuso di stored procedures e trigger può rendere l'applicazione difficile da mantenere e da debuggare, perché la logica di business è "nascosta" nel database invece di essere centralizzata nel codice dell'applicazione. Vanno usati con criterio per i compiti in cui eccellono: operazioni complesse sui dati e garanzia dell'integrità.
Hai bisogno di una soluzione su misura?
Dalla Web App al gestionale custom, trasformiamo le tue idee in software performante. Contattaci per una consulenza gratuita.
Richiedi una consulenza