|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
[sql-update] Aggiornamento intera tabella
Salve, i record contenuti in una tabella rappresentano degli oggetti fisici in una fila ordinata. Ognuno quindi ha una posizione.
Il problema è che si può cambiare posizione ad un oggetto e questo ovviamente comporta che cambia anche la posizione di tutti gli altri oggeti presenti nella fila. Ne consegue che devo mantenere aggiornata l'intera tabella delle posizioni degli oggetti. C'è un metodo furbo per occupare poco il database quando a uno dei record viene cambiata posizione? O mi tocca fare l'update su tutti i record che seguono la nuova posizione? Ultima modifica di MEMon : 16-03-2010 alle 17:45. |
![]() |
![]() |
![]() |
#2 |
Messaggi: n/a
|
Ma il tuo problema adesso è che il DB soffre di prestazioni?
Quanti record hai in quella tabella? |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
No ora no, ma non mi piace come metodo...
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Umh... memorizzare la posizione come offset dall'oggetto precedente?
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Dec 2002
Messaggi: 3359
|
Si ci avevo pensato a simulare una lista, dove ogni oggetto punta al prossimo, solo che mi viene difficile poi estrapolare i dati dalla tabella in modo ordinato.
Mi vien da pensare che dovrei poi tirarne fuori uno a uno, leggere l'id dell'oggetto che lo segue e andare a leggere quel record...e così via. |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Dipende dal tuo db.
In oracle (e postgresql dovrebbe avere qualcosa di analogo) puoi fare query gerarchiche tramite il costrutto 'start with ... connect by' e tirare elementi strutturati in quel modo in modo ordinato è facile. Per altri db non saprei. E poi vedi tu cosa ottimizzare: fai più 'update' o fai più 'select' nella tua applicazione? Dovresti ottimizzare l'operazione che viene eseguita con più frequenza e organizzare i dati pensando a come li utilizzerai. E' chiaro che devi arrivare ad un compromesso.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
![]() |
![]() |
![]() |
#7 | |
Messaggi: n/a
|
Quote:
Solitamente quando pongo una colonna di ordinamento in una tabella poi se modifico una posizione o cancello un record devo ovviamente riaggiornare tutto l'elenco. |
|
![]() |
![]() |
#8 | |
Senior Member
Iscritto dal: Jul 2005
Città: Bologna
Messaggi: 1130
|
Quote:
Codice:
[Oggetti] id, posizione, id_precedente Poi è chiaro che tutte le volte che hai bisogno della lista delle posizioni, te la devi ricostruire.
__________________
-> The Motherfucking Manifesto For Programming, Motherfuckers |
|
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 00:43.