Zidar Canada
Moderator Član broj: 15387 Poruke: 3085 *.100.46-69.q9.net.
|
Najbolje resenje problema je ono koje potpuno eliminise problem. U tvom slucaju problem nije nepoznavanje postupka za prenos vrednosti iz kolone NovoStanje jednog rekrda u kolonu StaroStanje sledeceg rekorda. Kolege su ti pokazali kako se to moze odraditi. Medjutim, problem je u tome sto to uopste ne mora (ne treba?) da se radi. Tvoja tabela je lose postavljena. I sam vidis da bez pomoci front-enda ne mozes da odrzis integritet podataka.
Pretpostavljam da Stanje predstavlja citanje brojaca kilomatra na vozilu. Umesto strukture (Datum, RegBroj, StaroStanej,NovoStanje) mozda je bolje postaviti
nesto kao (Datum, RegBroj, TrenutnoStanje). Ako te zanima tada koliko je kilometara predjeno izmedju bilo koja dva datuma, moze se napisati kveri koji to odradjuje. Moze se napisati i kveri koji prikazuje podatke u obliku (Datum, RegBroj, StaroStanej,NovoStanje), onako kako si ti psotavio i sto ti omogucuje da lakse resis reporte, pretpostavljam. U tom slucaju svi reporti koje si bazirao na svojoj strukturi nastavili bi da rade kao i pre. Jedina razlika - ne moras da pises kod i da nagadjas koji event da upotrebis i kada.
Problem kojim se bavis nije jednostavan jer ukljucuje vreme, pa ti mogu trebati i neke druge stvari koje za sada ne vidis. Ako ovo radis za vezbu ili da ucis, mozda je bolje da uzmes neki drugi zadatak. Ako ovo radis za posao, onda moras da naucis. Ako si zainteresovan da naucis, kazi pa da ti pomognemo.
Ponavljam, data modeli koju ukljucuju pracenje kroz vreme nisu uopste jednostavni. I iskusni prave velike greske, a prva je da se model ne normalizuje dovoljno. Tvoj model je naoko jednostavan, sa jednom manom - nije normalizovan ni do 2NF. Imas kolonu koja ne zavisi od PK, nego od nekog rekorda u proslosti i od PK. A lepo kaze - svaka kolona sme da zavisi samo i samo od PK. U normalizovanom modelu, minimum koji se zahteva jeset da je svaki rekord nezavisan od ostalih rekorda. Kod vremenskih podataka, u vecini savremenih RDBMS to nazalost nije moguce postici. I model koji ja predlaze ima istu manu, samo nije toilko ocigledna kao kod tebe. U mom modelu, sa trenutnim stanjem, podrazumeva se, ocekuje se da u svakom rekordu trenutno stanje bude vece ili jednako nego u prethodnom danu za isto vozilo. To se ne moze garantovati na nivou data modela, barem u Accessu nije moguce postaviti constraint koji to garantuje. To cini mi se moze trenutno da uradi samo PostGres ili Firebird. Znaci, problem medjuzavisnosti individualnih rekorda ostaje i dalje. Samo je model koji ja predlazem nesto laksi za manipulisanje i odrzavanje nego onaj koji si ti postavio, veruj mi na res, znam iz prakse oba modela sta rade i sta zahtevaju.
Nemoj da se obeshrabris, vecina profesionalaca bi postavila model bas onako kako si ti uradio, i vecina takvih modela ima velikih problema u praksi.
|