Mislim da smo malo skrenuli sa teme, ali diskusije ipak nikad dosta jer mozemo cuti razlicita misljenja i iskustva i to je jedna od stvari koje nam svima trebaju. Zato evo mog licnog iskustva (nadugo i nasiroko, nadam se da necete zamjeriti):
Provjera podataka na nivou BE je nesto sto bi se trebalo uraditi prilikom dizajna baze podataka jer se uvijek mora poceti upravo od tabela. Ovdje cu se sloziti sa misljenjem Zidara i Getsbija, mnogo je jednostavnije i brze raditi ovako u bazama koje su jednokorisnicke ili u bazama gdje su tabele linkovane u FE. Ako nema potrebe, nemoj ni komplikovati.
Medjutim, projekat koji sam radio prosle godine poceo sam sa linkovanim tabelama u FE. Provjera podataka je bila na nivou BE. Bilo je to nesto sto bi smo rekli klasika:multiuser okruzenje (oko 5 korisnika), BE na serveru, FE na racunarima, linkovane table na FE. Mrezno okruzenje je bilo jako dobro, upravo su zavrsili sa postavljanjem optickih kabala izmedju routera i switch-eva, a od switch-eva do racunara su vodili standardni CAT5 kablovi. Rekli bi smo: prava idila za bazu podataka. Ali nije sve radilo tako. Bilo je mnogo zalbi na sporost rada. Pretpostavljao sam da je problem u postavci administratora mreze, ali je isti tvrdio da je sve OK i da je "problem u dizajnu tvoje baze podataka, a ne moje mreze". Obzirom da je on bio IT za firmu, nisam imao nacina da tu bilo sta izmijenim.
Tada sam se odlucio na mijenjanje cijelog dizajna FE baze podataka i smanjenja koristenja BE koliko god je to moguce. Provjera podataka na nivou BE je ostalo u upotrebi za svaki slucaj, ali sam dodao i provjere na FE. Tabele vise ne linkujem nego pristupam podatcima samo onda kad je neophodno. Prilikom otvaranja forme, podatci se snime na privremene tabele u FE, a nakon obrade isti se tek onda snimaju u BE. Jos sam morao osigurati koristenje jednog sloga od strane samo jednog korisnika kako ne bi doslo do konflikta i "pucanja" BE baze.
Razumijem da je to dupli posao, mozda i nepotreban, ali od kako sam napravio ove izmjene zalbe na sporost i cekanje su prestale. Ponosam sam reci da taj program radi vec skoro 7 mjeseci i od tada slicnih problema nema. Naravno pojavile su se druge stvari koje sam morao prepravljati na zahtjev korisnika. Nema savrsenog programa, to znamo odavno ;-).
Upravo zbog toga sam odlucio istu stvar uraditi i sa ovim projektom, jer je jos zahtjevniji sto se tice udaljenosti i mreznog ogranicenja.
I ovdje ponoviti ono sto su rekli Getsbi i Zidar: provjera integriteta podataka na nivou tabele je neophodna za sve tabele u BE bazi podataka kako bi se osigurao integritet podataka.
Moj nacin rada, sa dodatnim provjerama u FE, je moj "stil" programiranja, nista vise.
----There is no place like 127.0.0.1-----