ITportal
a- a+

Creare da zero un gestionale in PHP (III Parte)

Pagina 3 di 6

Vantaggi ottenuti dalla normalizzazione
Riepiloghiamo i vantaggi che abbiamo ottenuto con un’ottimizzazione simile:

  • Eliminazione se non totale di gran parte della ridondanza (ripetizione inutile degli stessi valori);
  • Eliminazione delle anomalie di inserimento (la ripetizione continua degli stessi valori aumenta il rischio di errore);
  • Eliminazione delle anomalie di modifica (dovendo modificare lo stesso valore ripetuto in più punti, corriamo il rischio di dimenticare qualche campo invariato, rendendo il database ambiguo e inconsistente);
  • Eliminazione delle anomalie di cancellazione (cancellando ad esempio il record dell'unica vendita effettuata,senza normalizzazione, avremmo perso per sempre anche i dati relativi al cliente).

All'opera: creazione delle tabelle Procediamo adesso con la creazione di tutte le tabelle, usufruendo del comodissimo phpMyAdmin, che, se abbiamo scelto di installare EasyPHP, troveremo già attivo e configurato all'indirizzo http://localhost/mysql/. Creiamo un nuovo database gestionale e le 9 tabelle con le seguenti impostazioni:

                •  Tabella 1: fornitori
   --------------------
    id TINYINT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    nome VARCHAR(50) NOT NULL, telefono VARCHAR(50), 
    fax VARCHAR(50), indirizzo VARCHAR(250)

•  Tabella 2: prodotti
   -------------------
    id INT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    nome VARCHAR(100) NOT NULL, categoria_id 
    TINYINT NOT NULL, fornitore_id TINYINT NOT NULL, 
    descrizione TEXT, quantità INT NOT NULL

•  Tabella 3: prezzo_prodotti
   --------------------------
    prodotto_id INT NOT NULL, costo_acquisto 
    FLOAT(10,2), costo_vendita FLOAT(10,2), 
    data DATE NOT NULL

•  Tabella 4: categorie
   --------------------
    id TINYINT NOT NULL AUTO_INCREMENT PRIMARY
    KEY, nome VARCHAR(50) NOT NULL

•  Tabella 5: clienti
   ------------------
    id MEDIUMINT NOT NULL AUTO_INCREMENT PRIMARY KEY, 
    nome VARCHAR(50) NOT NULL, cognome VARCHAR(50) 
    NOT NULL, telefono VARCHAR(20), indirizzo 
    VARCHAR(200)

•  Tabella 6: acquisti
   -------------------
    Colonne: id INT NOT NULL AUTO_INCREMENT PRIMARY 
    KEY, data DATETIME NOT NULL

•  Tabella 7: vendite
   ------------------
    Colonne: id INT NOT NULL AUTO_INCREMENT PRIMARY 
    KEY, cliente_id MEDIUMINT NOT NULL, data DATETIME
    NOT NULL

•  Tabella 8: ordini_acquisti
   --------------------------
    Colonne: acquisto_id INT NOT NULL, prodotto_id 
    INT NOT NULL, quantità INT NOT NULL

•  Tabella 9: ordini_vendite
   -------------------------
    Colonne: vendita_id INT NOT NULL, prodotto_id 
    INT NOT NULL, quantità INT NOT NULL



Figura 8 – Conferma della creazione della tabella con phpMyAdmin.

 



Ti potrebbe interessare anche

commenta la notizia

C'è 1 commento
Redazione
Ti interessano altri articoli su questo argomento?
Chiedi alla nostra Redazione!