la mia intenzione e' banalissima
Faro' ora un esempio che vedo io tutti i giorni sul posto di lavoro:
Documento bolletta.
E' composto da tre tabelle: BollaTesta, BollaRighe, BollaRif.
BolleTesta contiene i campi relativi al codice cliente, varie opzioni di bolla (se stampata, se fatturata, ecc...), numero bolla e IDBolla
BollaRighe contiene le righe di merce e quelle descrittive.
BollaRif contiene i riferimenti ai documenti di fatturazione e i movimenti generati dal controllo in magazzino.
Il nostro esempio cade sulla tabella BolleRighe
i campi cono i seguenti (ovviamente sono molti di piu', ma taglio corto
):
ID (Serial PrimaryKey) - IDBolla (Integer) - Riga (Float) - TipoRiga (Integer) - Codice (String) - Descrizione (String) - ecc... ecc....
Inserisco 3 record...
ID IDBolla Riga TipoRiga Codice Descrizione
1 1 1 0 ABC Tovaglia Colorata
2 1 2 0 ACB Tovagliolo Colorato
3 1 3 0 CBA Coprimacchia ColoratoFin qui tutto bene... Nel frattempo si sono fatte altre 30 bolle da 5 righe l'una quindi sono state aggiunte 150 record e ci troveremo in questa situazione:
ID IDBolla Riga TipoRiga Codice Descrizione
1 1 1 0 ABC Tovaglia Colorata
2 1 2 0 ACB Tovagliolo Colorato
3 1 3 0 CBA Coprimacchia Colorato
...
...
149 31 1 0 ABC Tovaglia Colorata
150 31 2 0 ACB Tovagliolo Colorato
151 31 3 0 CBA Coprimacchia Colorato
152 31 4 0 XCD Tovaglia 150x150
153 31 5 0 ASA Coprimacchia 100x100Adesso mettiamo il caso che il cliente della prima bolla mi chiama e mi fa aggiungere della merce. Voglio anche far presente alla spedizione, con una riga descrittiva messa in evidenza sulla prima riga della bolla, che e' stata appunto aggiunta della merce... tu mi dirai
"ma perche' la riga descrittiva non la metti per ultima e buonanotte al secchio?" e io ti rispondo "
Perche' a quest'ora di notte, con mia moglie che mi da del malato di mente al solo accendere il pc a quest'ora, non mi veniva in mente un altro esempio valido per farti capire cosa intendo io per campo di riordino"
Aggiungo i nuovi record in aggiunta alla prima bolla:
ID IDBolla Riga TipoRiga Codice Descrizione
154 1 0.5 1 Il cliente vuole altra merce
155 1 4 0 ASA Coprimacchia 100x100Richiamando i dati nel report (e anche nella GridBox) con una query con ORDER BY Riga, avremo sempre l'ordine giusto dei record senza star li a fare UPDATE al Campo Riga per i record sottostanti o, peggio ancora, non avendo il campo riga per il riordino, a fare l'UPDATE al campo ID.
Spero di essermi spiegato bene... sono appena reduce da una cena di parenti, e il vino sta ancora in circolo