Databáze > Firebird a Interbase
Otázky začínajúceho 2
Mi.Chal.:
--- Citace: Stanislav Hruška 08-10-2012, 14:01:26 ---//Takze IMHO spravne je to vsechno otestovat a zobrazit BFU a pak teprve vykonat SQL command.
Veď to tak robím a vraj to mám zmeniť :-[
Pri kontrole dát na klientovi je knotrala v DB už len akousi poistkou. Bavím sa len o dátach.
--- Konce citace ---
bývá to na obou místech - v kódu ošetříš to, jestli ty data vůbec mají smysl (třeba jestli je něco vyplněno nebo abys do čísel nedával písmena). V db bývají různé kontroly a constrainty, aby data byla konzistentní (někdy se provádějí změny i jinak, než přímo z aplikace nebo do db může lézt nějaký další proces).
pf1957:
--- Citace: Stanislav Hruška 08-10-2012, 14:01:26 ---//Takze IMHO spravne je to vsechno otestovat a zobrazit BFU a pak teprve vykonat SQL command.
Veď to tak robím a vraj to mám zmeniť :-[
Pri kontrole dát na klientovi je knotrala v DB už len akousi poistkou. Bavím sa len o dátach.
--- Konce citace ---
Nesleduju vsechny prispevky detailne, ale nezaregistroval jsem, ze by ti nekdo radil, ze nemas delat kontroly na strane klienta. Kontroly se do DB davaji proto, aby ti zadny klient nerozhazel data v DB a referencni integrida se pouziva proto, abys mel kontrolu nad vazbami mezi tabulkami tj. aby ti v DB nechybela/neprebyvala nejaka data. Ale takoveho klienta staci vyf*ckovat, at nedela v DB bordel.
Kontrola spravne zadanych parametru je uplne neco jineho - to souvisi s tim, aby byl klient user friendly. A cim vic ma byt friendly, tim vic toho na strane klienta musis udelat. Jak pise Mi.chal, dela se oboje. Jedine, co pri paralelnim chodu vice klientu neotestujes dopredu jsou unique zalezitosti a zmeny hodnot z nekolika mist. Tam u SQL operace muze (a dochazi) ke kolizim, ktere se odchytavaji ex post a nejak se s BFU resi a dava se mu zpravidla sance operaci zopakovat.
Stanislav Hruška:
Tak som to chápal od začiatku. Aspoň som si to opäť trocha premyslel.
//ale nezaregistroval jsem, ze by ti nekdo radil, ze nemas delat kontroly na strane klienta.
Nechce sa mi to hľadať, alebo bol tam príspevok ktorý tak minimálne vyznel. Ja som ho tak pochopil.
Mám dávať do DB úplnú kontrolu údajov? Mám na mysli kompletne zopakovať kontroly, ktoré vykonávam na klientovi. Predpokladám odpoveď ÁNO.
Chcem si upresniť. Commit sa používa len SP a spúšťach. Možno UDF? Príkazy Post, Delete, Insert a Update vykonávané z kleinta pomocou komponent to nevyžadujú.
pf1957:
--- Citace: Stanislav Hruška 09-10-2012, 08:26:20 ---Mám dávať do DB úplnú kontrolu údajov? Mám na mysli kompletne zopakovať kontroly, ktoré vykonávam na klientovi. Predpokladám odpoveď ÁNO.
--- Konce citace ---
V podstate ano, ale nepristupoval bych k tomu jako k duplikovani (coz konotuje praci navic, praci zbytecnou apod.).
Spravne je nejdriv navrhnout databazovy model a vytvorit databazi. A volit kontroly a opatreni tak, aby strikaci, co k te databazi budou delat pozdeji ksichty, ji nemohli moc ublizit a zajistit, aby byla stale v logicky konzistentnim stavu.
--- Citace: Stanislav Hruška 09-10-2012, 08:26:20 ---Chcem si upresniť. Commit sa používa len SP a spúšťach. Možno UDF? Príkazy Post, Delete, Insert a Update vykonávané z kleinta pomocou komponent to nevyžadujú.
--- Konce citace ---
Ne. Commit je potvrzeni transakce a strikaci zhusta pouzivaji rezim s implicitnim rizenim transakci tzv. AutoCommit, kde se o to nestaraji, transakce se sami zahajuji a ukoncuji. Ale to je pristup: "neotravuj me s transakcema, stejne nevim k cemu jsou dobry". Jejich programy pak nikdy spravne nepracuji v paralelnim prostredi atd. IMHO by sis mel o transakcich neco precist a mel bys je explicitne ridit tj. zvolit typ transakce, jeji izolace, tu nastartovat, potvrdit a osetrit ji pomoci try-except s vhodnou zotavovaci akci. Smyslem transakce je zajistit, aby se nekolik SQL prikazu/operaci provedlo jako jedina tj. neprerusitelna akce, ktera se bud povede cela, nebo se cela zrusi.
SP a triggery pracuji v ramci (uvnitr) nejake transakce jako kterykoli jiny SQL prikaz. UDF = User Defined Function tj. neni to SQL prikaz ale jen funkce, kterou si napises v nejakem normalnim jazyku podle presnych pravidel a SQL server ti ji umozni ve tvych SQL prikazech pouzivat.
Stanislav Hruška:
Vďaka! Len na to čítanie mám toho veľmi veľa. Takže postupne. Čítam veľmi pomaly.
//aby strikaci, co k te databazi budou delat pozdeji ksichty, ji nemohli moc ublizit a zajistit
Toto ma nenapadlo, aj keď to u mňa nehrozí. Zatiaľ.
Navigace
[0] Seznam témat
[#] Další strana
[*] Předchozí strana
Přejít na plnou verzi