[mysql] meglio guadagnare in tempo o in spazio?

sabato 29 novembre 2008 - 10.39

iako17 Profilo | Newbie

Ciao ragazzi,

sto creando una base di dati in grado di gestire i dati di un negozio. Ho la tabella articoli nella quale memorizzo il prezzo di listino dell'articolo e l'eventuale percentuale di sconto applicata. Una delle funzionalità richieste è quella di tener traccia del prezzo scontato dell'articolo. A questo punto vorrei capire se mi conviene inserire una nuova colonna nella tabella articoli e memorizzare il prezzo scontato(informazione ridondante), oppure fare di volta in volta il calcolo del prezzo scontato recuperando prezzo di listino e sconto?
Sicuramente dovrei tener conto del numero delle volte che dovrei effettuare il calcolo e della quantità di eventiuale informazione ridondante.
Credo che effettuare il calcolo di volta in volta sia la cosa piu corretta, ad ogni modo vorrei dei consigli in merito.

Ciao e grazie

Anonimo Profilo | Senior Member

A mio parere (magari poi qualcuno più esperto in database potrebbe smentirmi) conviene calcolarla di volta in volta visto che le informazioni risiedono nella stessa tabella percui il costo di computazione è limitato. Il discorso sarebbe stato diverso se per ricavare il dato avresti dovuto fare uno o più join, che hanno ovviamente un costo computazionale più elevato.

Ciao!
Riccardo

jenga Profilo | Newbie

>A questo punto vorrei
>capire se mi conviene inserire una nuova colonna nella tabella
>articoli e memorizzare il prezzo scontato(informazione ridondante),
>oppure fare di volta in volta il calcolo del prezzo scontato
>recuperando prezzo di listino e sconto?
>Sicuramente dovrei tener conto del numero delle volte che dovrei
>effettuare il calcolo e della quantità di eventiuale informazione
>ridondante.

Secondo me dipende un po' dal'uso che devi fare del "prezzo netto".
Mi spiego: se il prezzo netto deve essere solo presentato a fianco di ogni articolo, non serve salvarselo, lo ricalcola lo strumento di presentazione (report, programma vb, pagina web...)
Se invece ci devi fare delle analisi (i 10 articoli più cari, tutti gli articoli con prezzo netto tra 1 e 10 euro...) è più conveniente avere la colonna esplicitata (anche se viene ridondata l'informazione) così eventualmente puoi anche indicizzarla.

My 2 cent...

--
oggi la mia voglia di lavorare è pari a null
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5