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.