Pouziti autoincrementu

Petr Vileta petr na practisoft.cz
Pondělí Červen 23 00:22:21 CEST 2003


> > Mno :-) Ono u faktury je jeji cislo totiz ten nejdulezitejsi udaj a
pouziva
> > a zobrazuje se uplne vsude. Proto mi prijde neprakticke zavadet nejake
dalsi
> > cislovani (ID), kdyz rok vydani faktury a jeji cislo potrebuji vzdycky.
>
[...]
> a nelze se tomu spolehlivě bránit. Potřebujete-li souvislou řadu hodnot
> klíče, musíte si vytvořit druhý klíč, který vyplňujete až úplně nakonec,
> v rámci co nejkratší transakce, která má dostatečnou úroveň izolace
> (selže-li, opakujete pokus znovu).
Ale vzdyt ja od zacatku tvrdim, ze to delam takhle :-) Pripravim si veskera
data (do promennych, do temporary tabulek atd.), ZAMKNU tabulku, kde chci
ziskat unikatni klic, ziskam ho, zapisu data (vetsinou jedinnou vetu),
ODEMKNU a jdu zapisovat dalsi data do dalsich tabulek s jiz znamym ID.
Je pravda, ze pokud bude pristupovat malo klientu (obchod s 3 pokladnami),
tak si muzu dovolit zamykat napriklad tabulku faktur a nebude to vadit.
Pokdu predpokladam klientu vic, tak si pro cislovani faktu vytvorim
samostatnlou tabulku, ktera bude obsahovat jedinou vetu (pro kazdy rok) s
jedinnym polem a to bude posledni pridelene cislo faktury a budu zamykat
tuto tabulku. Tim mohou ostatni klienti faktury cist (a zobrazovat,
tisknout, sumarizovat) a nezdrzuji je, dokud nebudou chtit VLOZIT novou
fakturu. Abych zamezil dalsim diskuzim, tak uvedu, ze se rozhodne nejedna o
aplikace pro firmy se stovkami faktur za minutu ;-)
Kdyz potrebuju dojet 5 km, klidne zvolim Trabanta, kdyz pojedu 500km, asi
zvolim neco slozitejsiho a pohodlnejsiho, treba Mercedes. Takze pro male
aplikace klidne zamykam tabulky na nezbytne nutnou dobu a mam naprosto
prehledna data, ktera dokazu v pripade nutnosti opravit i z prikazove radky
a bez papiru plneho poznamek typu "Faktura 10/2003 ma ID=132009876500" :-)
Toz tak.
--
Petr




Další informace o konferenci Test