🗄️ Schema completo, nell'ordine corretto
Ordine di creazione: prima aziende (indipendente), poi contatti (referenzia aziende), poi trattative (referenzia contatti e utenti — supponiamo utenti già esistente da un sistema di autenticazione condiviso), infine interazioni (referenzia trattative).
CREATE TABLE aziende (
id INT AUTO_INCREMENT PRIMARY KEY,
ragione_sociale VARCHAR(200) NOT NULL,
settore VARCHAR(100)
);
CREATE TABLE contatti (
id INT AUTO_INCREMENT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(150),
azienda_id INT,
FOREIGN KEY (azienda_id) REFERENCES aziende(id)
);
CREATE TABLE trattative (
id INT AUTO_INCREMENT PRIMARY KEY,
titolo VARCHAR(200) NOT NULL,
valore DECIMAL(10,2),
fase ENUM('lead', 'qualificato', 'proposta', 'chiuso_vinto', 'chiuso_perso') DEFAULT 'lead',
contatto_id INT,
commerciale_id INT,
creata_il TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (contatto_id) REFERENCES contatti(id)
);
CREATE TABLE interazioni (
id INT AUTO_INCREMENT PRIMARY KEY,
trattativa_id INT,
tipo ENUM('chiamata', 'email', 'riunione', 'nota'),
contenuto TEXT,
creata_il TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (trattativa_id) REFERENCES trattative(id)
);
💡 DECIMAL(10,2) per valore: mai FLOAT per il denaro, per evitare errori di arrotondamento in un contesto dove i numeri hanno valore economico reale.
✅ Checkpoint — a questo punto hai
4 tabelle collegate in catena (aziende → contatti → trattative → interazioni), nessun dato ancora, nessun file PHP.