[Db] contatore server side
Domenico L.
domenico.lorusso a pleiade.it
Mer 3 Gen 2007 12:25:27 CET
Marcello Vezzelli ha scritto:
>> Insisto sull'after perché se hai bisogno di non avere buchi di
>> numerazione, puoi mettere il numero solo dopo che il record è stato
>> inserito (metti che ti sei dimenticato un controllo o che ti salta un
>> constraint).
>
> Beh in tal caso al trigger before post non ci arriva... o si?
> Cioè mi vuoi dire che i constraint vengono valutati dopo l'esecuzione
> del trigger? Paura...
naturalmente sì se è un trigger before
>
> Ovviamente buchi non ce ne devono essere. Diciamo si gestisce lato
> applicazione: le fatture non si possono cancellare (ma solo
> modificare, il numero di fattura rimane comunque assegnato), a meno
> che non si voglia cancellare l'ultima inserita... in tal caso è
> possibile farlo.
> Qui bisogna capire cosa succede se "contemporaneamente" cancello
> l'ultima e ne inserisco una nuova... non è che una transazione vede
> ancora la fattura mentre l'altra l'ha già cancellata? Come si
> gestiscono queste situazioni imbarazzanti?
> Ma fare una lock table in questi casi serve a qualcosa o è una
> bestialità?
No mysql 5 ha il lock a livello di riga quindi tutto bene.
Mi lascia un po' da pensare il concetto che è possibile cancellare
l'ultima, in un ambiente concorrente il concetto di ultima è una cosa
che non ci si può permettere di avere.
Anche perché potrebbe diventare l'ultima di un utente... ma qui stiamo
di fatto introducendo una soluzione (peraltro già vista in software di
fatturazione) che le fatture vengono inserite e successivamente (dopo x
giorni o manualemente) convalidate, quindi gli si assegna il numero.
Ora se loro vogliono questo, ferma tutto, perché l'approccio è ben
diverso, altrimenti dopo proseguo ;-)
--
Domenico L. icq: 645 44 861
per stupire mezz'ora basta un libro di storia,
io cercai di imparare la Treccani a memoria... [F.d.A.]
Maggiori informazioni sulla lista
Db