Originariamente inviato da Emulman
ottimizzare un database è una operazione fondamentale, va fatta prima di qualsiasi altra cosa! innanzi tutto si stabiliscono le tabelle e i campi da usare; poi si deve controllare ad esempio che in una tabella non ci siano campi duplicati; in tal caso meglio spostare il secondo campo identico in un'altra tabella.
Indi si stabiliscono le relazioni fra le tabelle, che sono di 3 tipi:
1) UNO A UNO: ad un campo di una tabella corrisponde un solo campo di un'altra tabella.
2) UNO A MOLTI: ad un campo di una tabella corrispondono uno o più campi di un'altra tabella.
3) MOLTI A MOLTI: a più record di una tabella corrispondono più record di un'altra tabella. E il tipo più incasinato che costringe ad usare una tabella intermedia temporanea.
ad esempio, in un gestionale per libreria, un cliente può ordinare più libri (corrispondenza UNO A MOLTI fra l'anagrafica cliente e lo schedario dei libri).
Un'altra regola fondamentale è assegnare il tipo di dato appropriato per ogni campo: ad esempio se un campo stringa non deve contenere più di 10 caratteri meglio mettere esplicitamente VARCHAR(10); o se si usa un campo numerico che non avrà valori superiori a 100 meglio metterlo come tipo TINYINT (che consuma solo un byte di memoria) piuttosto di un INT che consuma 4 byte di memoria.
Capit???