🗄️ Schema completo, nell'ordine corretto
Ordine: categorie_forum (indipendente) → thread (referenzia categorie e utenti) → risposte (referenzia thread) → notifiche (referenzia utenti, indipendente dalle altre tre).
CREATE TABLE categorie_forum (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL
);
CREATE TABLE thread (
id INT AUTO_INCREMENT PRIMARY KEY,
titolo VARCHAR(200) NOT NULL,
categoria_id INT,
autore_id INT,
bloccato BOOLEAN DEFAULT FALSE,
creato_il TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (categoria_id) REFERENCES categorie_forum(id),
FOREIGN KEY (autore_id) REFERENCES utenti(id)
);
CREATE TABLE risposte (
id INT AUTO_INCREMENT PRIMARY KEY,
thread_id INT,
autore_id INT,
contenuto TEXT NOT NULL,
nascosta BOOLEAN DEFAULT FALSE,
creata_il TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (thread_id) REFERENCES thread(id)
);
CREATE TABLE notifiche (
id INT AUTO_INCREMENT PRIMARY KEY,
utente_id INT,
messaggio VARCHAR(255),
letta BOOLEAN DEFAULT FALSE,
creata_il TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
💡 bloccato e nascosta sono flag booleani già pronti fin da questo passo, anche se la loro logica di attivazione arriverà solo al Passo 5 — così lo schema non dovrà essere modificato più avanti nel percorso.
✅ Checkpoint — a questo punto hai
4 tabelle, di cui 3 in catena e una indipendente (notifiche), pronte a ricevere dati.