Ogni sito o applicazione deve conservare dei dati da qualche parte: prodotti, prenotazioni, utenti, contenuti. All'inizio può bastare un semplice file JSON, ma quando il progetto cresce questa scelta mostra i suoi limiti. Vediamo quando è il momento di passare a un vero database.
Il file JSON: comodo ma fragile
Salvare i dati in un file JSON è immediato e gratuito. Funziona benissimo per piccole quantità di informazioni che cambiano di rado. Ma appena il progetto si fa serio emergono tre problemi:
- Concorrenza: se due richieste scrivono nello stesso momento, i dati possono corrompersi.
- Ricerche: trovare o filtrare le informazioni diventa lento e macchinoso.
- Integrità: nulla garantisce che i dati abbiano sempre la forma giusta.
SQLite: un database in un file
SQLite è un database completo contenuto in un singolo file, senza bisogno di installare un server. È leggerissimo, affidabile ed è usato in miliardi di dispositivi. Per moltissimi siti e applicazioni è il punto di equilibrio perfetto tra semplicità e robustezza.
Cos'è un ORM (e perché Drizzle)
Un ORM (Object-Relational Mapper) è uno strato che traduce le tabelle del database in oggetti del codice, e viceversa. Permette di scrivere le query in modo chiaro e sicuro, evitando errori e vulnerabilità. Drizzle è un ORM moderno e leggero, con il vantaggio dei tipi di TypeScript:
const attivi = await db.select()
.from(utenti)
.where(eq(utenti.stato, 'attivo'));
Il codice è leggibile e l'editor segnala subito un errore se sbagli un campo.
Quando basta JSON e quando no
Per una manciata di voci statiche, il JSON va benissimo. Quando i dati sono molti, cambiano spesso, vengono cercati o devono restare coerenti, è il momento di un database. Anticipare questo passaggio evita riscritture dolorose.
Cosa significa per il tuo progetto
Scegliere fin dall'inizio il modo giusto di conservare i dati significa un'applicazione che cresce senza sorprese. Se non sai quale soluzione faccia al caso tuo, scrivimi e la valutiamo insieme.
Approfondisci: un'architettura documentata e replicabile e i principi del codice robusto.