๐๐ฎ๐น๐น๐ฎ ๐๐ผ๐ด๐ถ๐ฐ๐ฎ ๐ฎ๐น๐น๐ฎ ๐ฆ๐๐ฟ๐๐๐๐๐ฟ๐ฎ: ๐๐ผ๐บ๐ฒ ๐๐ถ ๐ฃ๐ฟ๐ผ๐ด๐ฒ๐๐๐ฎ ๐๐ป ๐๐ฎ๐๐ฎ๐ฏ๐ฎ๐๐ฒ ๐ถ๐ป ๐๐ถ๐ป๐ด๐๐ฎ๐ด๐ด๐ถ๐ผ ๐ก๐ฎ๐๐๐ฟ๐ฎ๐น๐ฒ.
Sito web personale โ Da 0 a Deploy ยท Episodio 3 ยท 26 maggio 2026
Un database รจ la memoria del sito. Non l'abbiamo progettato manualmente: abbiamo descritto in italiano tutto quello che il sito deve ricordare (utenti, articoli, eventi, ecc.), e l'AI ha tradotto il prompt in 11 tabelle SQL complete. La lezione? Progettare un database significa descrivere il tuo pensiero.
Un sito web senza database รจ come una casa senza muri: tutto sparisce ogni volta che ricarichi la pagina. Gli articoli scompaiono. I tuoi visitatori spariscono. Il database รจ la memoria del sito โ quello che gli permette di ricordare.
Non l'abbiamo progettato manualmente, tabella per tabella. L'abbiamo descritto in italiano, e l'AI l'ha tradotto in SQL.
Il prompt originale
Ecco il prompt esatto che ho inviato a Claude Code:
"Il sito deve gestire queste informazioni: Utenti: nome, email, password hashata, ruolo (admin/user), foto profilo URL, data registrazione - Articoli: titolo, contenuto HTML, excerpt, categoria, slug URL, immagine copertina, autore, data pubblicazione, stato (bozza/pubblicato) - Eventi: titolo, data, luogo, descrizione, URL immagine, stato (futuro/passato) - Esperienze professionali: periodo inizio/fine, ruolo, azienda, sede, descrizione, competenze - Formazione: periodo, titolo, istituzione, voto, descrizione - Certificazioni: nome, emittente, anno, URL documento - Iscritti newsletter: email, data iscrizione, stato attivo/inattivo - Messaggi contatti: nome, email, oggetto, messaggio, data, letto/non letto - Profilo: nome, sottotitolo, bio HTML, foto URL, logo URL, statistiche JSON - Thread forum: titolo, corpo, categoria, autore, data - Risposte forum: thread, corpo, autore, data. Crea lo schema SQL con chiavi primarie, chiavi esterne, indici e constraint appropriati."
Nessuna riga di SQL. Solo italiano. E da questo, Claude Code ha generato automaticamente 11 tabelle complete con tutti i vincoli e le relazioni.
Le undici tabelle
Users (utenti), Articles (articoli), Events (eventi), Experiences (esperienze), Education (formazione), Certifications (certificazioni), Newsletter_subscribers (iscritti), Contact_messages (messaggi), Profile (profilo del sito), Threads (discussioni forum), Replies (risposte forum).
Ogni tabella รจ come un cassetto. Ogni riga nel cassetto รจ un record. Ogni colonna รจ un attributo. Gli articoli si collegano agli utenti (chi li ha scritti). Le risposte si collegano ai thread (a quale discussione appartengono). ร tutto interconnesso.
Lo schema SQL generato
Claude Code ha tradotto il prompt italiano in uno schema SQL completo. Ecco come sono strutturate due tabelle fondamentali:
La tabella degli utenti contiene: l'ID univoco di ogni utente, il nome, l'email (che deve essere unica โ non possono esistere due account con lo stesso email), la password criptata in modo sicuro, un flag che indica se รจ admin o utente normale, l'URL della foto profilo e la data di creazione dell'account.
La tabella degli articoli contiene: l'ID univoco dell'articolo, il titolo, il contenuto in HTML, un excerpt (il riassunto), la categoria, lo slug (l'URL dell'articolo come "come-si-progetta-un-database"), l'ID dell'autore (che si collega direttamente alla tabella degli utenti โ cosรฌ il database sa chi ha scritto l'articolo), la data di pubblicazione, lo stato (se รจ una bozza o giร pubblicato) e la data di creazione.
La parte interessante รจ il collegamento tra le due tabelle: quando crei un articolo, lo associ a un utente specifico. Se provi ad associare un articolo a un utente che non esiste, il database lo rifiuta automaticamente. ร una protezione.
Un bug e la soluzione
Quando abbiamo deployato il sito, il database conteneva dati di demo. Il profilo aveva il nome "Mario Rossi" โ un placeholder. Ma il sito era giร online e pubblico. I visitatori vedevano "Mario Rossi" al posto del tuo nome.
Soluzione: Un prompt diretto all'AI: "Aggiorna il database di produzione: cambia il nome del profilo da 'Mario Rossi' a 'Pasquale Sicignano', aggiorna bio, sottotitolo e credenziali admin con la mia email reale."
Claude Code ha generato il comando SQL corretto. Nessun danno collaterale. Nessun file toccato. Solo la modifica necessaria.
La lezione: Anche gli aggiornamenti del database si descrivono in italiano. Non devi imparare SQL. Descrivi cosa vuoi, l'AI lo traduce.
Perchรฉ funziona
La struttura di un database riflette il tuo pensiero. Se sai che cosa vuoi conservare e come le cose si collegano tra loro, hai giร fatto il 90% del lavoro. La traduzione in SQL รจ quasi automatica.
Non รจ magia. ร che il linguaggio naturale รจ abbastanza preciso da descrivere strutture logiche. E l'AI รจ abbastanza bravo da tradurlo in codice.
Prossimo episodio
Ora che il database esiste, il backend โ Node.js e Express โ impara a leggere e scrivere dentro. Come un login funziona. Come un articolo viene salvato. Come il database diventa vivo.