Progettare un database

From Apache OpenOffice Wiki
Jump to: navigation, search



Il primo passo nella creazione di un database consiste nel porsi una serie di domande. Scrivete le domande e lasciate tra di esse uno spazio libero dove successivamente inserirete le risposte; alcune tra queste dovrebbero essere abbastanza ovvie, prendendosi il giusto tempo per pensarci.

Potrebbe essere necessario ripetere più volte questo procedimento perché tutto diventi chiaro nella vostra mente e sulla carta. Usare un file di testo per scrivere domande e risposte rende più semplice spostare le domande, aggiungerne di nuove e/o cambiare le risposte.

Di seguito sono elencate alcune domande e risposte che ho elaborato prima di creare il database sulle spese per l'automobile. Prima di iniziare avevo un'idea di cosa volevo, ma dopo avere iniziato a pormi domande ed a scriverne le risposte ho scoperto di avere bisogno di più tabelle e campi di quanti credessi.

Quali sono i campi necessari? 
Le mie spese si dividono in tre grandi categorie: acquisto di carburante, manutenzione e vacanze. Il costo annuale per il rinnovo del bollo e quello biennale per la revisione non rientrano in queste categorie, quindi sarà necessaria una tabella specifica: tasse e licenze.
Quali campi sono richiesti dall'area acquisti di carburante? 
Data acquisto, lettura chilometrica, costo carburante, quantità carburante e metodo del pagamento dovrebbero essere sufficienti (il consumo di carburante può essere calcolato con una ricerca).
Quali campi sono richiesti invece dall'area manutenzione? 
Data del servizio, lettura chilometrica, tipo di servizio, costo del servizio, e prossima scadenza dello stesso tipo (nel caso di un cambio dell'olio, quando dovrò sostituirlo la prossima volta). Ma sarebbe utile avere un modo per scrivere delle note: così ho aggiunto alla lista un nuovo campo, per contenere queste ultime.
Quali campi sono necessari invece per la categoria vacanze? 
Data, lettura chilometrica, carburante (includendo tutti i campi della tabella carburante), cibo (includendo pasti e spuntini), hotel, totale pedaggi, altro. Dato che questi acquisti sono pagati con una delle due carte di credito o in contanti, voglio un campo che indichi il tipo di pagamento usato per ogni articolo.
Quali campi sono invece richiesti per la categoria cibo? 
Colazione, pranzo, cena e spuntini dovrebbero andare bene.

Devo elencare tutti gli spuntini singolarmente o elencare il costo totale degli spuntini della giornata? Ho scelto di dividere questo dato in due campi: numero di spuntini e loro costo totale. Ho bisogno anche di un tipo di pagamento per ciascuna di queste voci: colazione, pranzo, cena e costo totale degli spuntini.

Quali sono i campi comuni a più di una categoria? 
Alcuni dati infatti vengono usati in tutte le categorie, come la lettura chilometrica ed il tipo di pagamento.
Come posso utilizzare questa informazione che riguarda tre categorie? 
Durante la vacanza voglio che le spese di ogni giorno vengano elencate assieme. I campi data suggeriscono una relazione tra la tabella vacanze e le date presenti in ciascuna delle tabelle carburante e cibo. Questo significa che i campi data di queste tabelle verranno collegati nella creazione del database.

Tra i tipi di pagamento ci sono due carte di credito e il denaro contante. Così, creeremo una tabella con un campo per il tipo di pagamento e la useremo in un elenco a tendina nei formulari.

Tip.png Abbiamo creato l'elenco dei campi da inserire nelle tabelle del database, ma c'è un ulteriore campo che potrebbe essere necessario: quello per la chiave primaria. In alcune tabelle il campo per la chiave primaria è già presente. In altre, come quella del tipo di pagamento, deve essere creato un campo aggiuntivo per la chiave primaria.


Content on this page is licensed under the Creative Common Attribution 3.0 license (CC-BY).
Personal tools