Pouziti autoincrementu

Jan Serak sherry na pikebo.cz
Čtvrtek Červen 19 07:09:35 CEST 2003


Petr Vileta wrote:
> No to tam neni, ale navrhnete tedy nejaky postup, ktery mi zajisti, ze
> dalsimu zaznamu pridelim NAVAZUJICI cislo a toto cislo se mi zaroven vrati
> do aplikace (programu) abych ho mohl dale pouzivat. Jedna se mi o to, ze
> napriklad pridelim cislo fakture, to musi navazovat na predchozi radu bez
> vynechani. Jenze toto cislo (ID) zaroven pouziju take v dalsich tabulkach,
> napriklad pro ocislovani v knize pohledavek (pohledavka ma stejne cislo jako
> faktura a nekdy delam podle nej join), pak v nejakem vykazu pro vedouciho
> skladu, kde do seznamu dodacich listu (maji sve ID) doplnim cislo (ID)
> faktury, ktera se k dodaku vaze.

Tohle vsechno je IMHO naprosto zbytecne. Reknete mi jediny duvod, proc 
by primarni klic faktury v databazi mel byt v neprerusene rade? 
Samozrejme legislativa pozaduje neprerusenou sekvenci ucetnich dokladu, 
ale neni jediny duvod (dnes, kdy je cena za 1 MB diskoveho prostoru 
halirova) pozadovat, aby sekvence videna uzivatelem slouzila jako 
primarni klic. Nedokazu si predstavit organizaci, ktera mam vice nez 
jednoho ucetniho (tedy vyzadujici multiuzivatelskou aplikaci) a pritom 
nema ruzne stupne schvalovaciho procesu. Umely primarni klic (derava 
sekvence) se prideli pri vzniku objektu. Ucetni cislo dokladu 
(vyzadovane jako unikatni a v postupne rade) se prideluje az mnohem 
pozdeji (po vsim schvaleni) a je uvedeno pouze na jednom miste 
(nepouziva se pro vazbu tabulek).

Nevim, zda to legislativa primo vyzaduje, ale kazdy 1. doklad v ucetnim 
roce by mel mit cislo 1 - jak zajistite koexistenci dat za vice ucetnich 
roku v jedne databazi, kdyz pouzivate cislo dokladu jako primarni klic?

Stran jinych identifikatoru: UOOU se snazi jiz hezkou dobu protlacit 
zakon, ktery by zakazoval v informacnich systemech pouzivat rodne cislo 
jako primarni klic, coz se dnes hojne deje zejmena ve zdravotnictvi, 
podobne by to melo byt i s jinymi identifikatory vystupujicimi vne 
informacniho systemu. Duvod je jednoduchy. I identifikator, ktereho se 
tvurce IS chyti jako konstantniho, se muze menit (rodne cislo se zmeni 
proste z toho duvodu, ze existuje jiny clovek s tymz rodnym cislem, nebo 
ze zena ma "muzske" rodne cislo atd.). Pokud se ale tento identifikator 
ma menit v mnohaterabytovych datovych skladech, je de facto nemozne 
zachovat konzistenci dat. Naopak, kdyz novy "clovek" zavadeny do IS 
dostane nejaky umely primarni klic (ktery se pouziva jen uvnitr 
databaze, ale ani obsluha IS ani onen clovek ani zadna treti strana jej 
nezjisti), tak data v datovych skladech jsou naprosto anonymni do doby, 
dokud se nekdo nepovolany nedostane k registru lidi.

Neni tohle cesta, jak uspokojit financni spravu o prukaznosti ucetnictvi 
a nedelat komplikace v softwaru tam, kde nejsou nutne?

							Jan Serak



Další informace o konferenci Test