Hlavní navigace

Názor k článku Buďte moderní (v SQL) od ehmmm - Ad 1, transakce: V okamziku, kdy musim psat...

  • Článek je starý, nové názory již nelze přidávat.
  • 16. 6. 2016 21:34

    ehmmm (neregistrovaný)

    Ad 1, transakce: V okamziku, kdy musim psat do dvou tabulek zaroven, tak uz si to bez transakce nelajsnu. I kdyz je pravda, ze povaha vasi aplikace muze byt takova, ze to ustojite i bez transakce. A co delam po rollbacku? Zalezi dle povahy aplikace. Pokud to je neco s GUI, tak uzivateli reknu, ze se to nepovedlo a on to zkusi znova. Pokud to je nejaka sluzba na serveru, tak to sam zkusi za chvili znovu.

    Ad 2, referencni integrita: Kdyz jsem pred 15 lety brigadnicil, tak jsem taky nechapal, k cemu to tam je, vzdyt si to prece ohlida aplikace. Pak jsem parkrat daval do kupy data, protoze ma aplikace tenkrat nebyla uplne bezchybna. A kusovnik pratkicky? Asi nerozumim otazce, ale pokud chce nekdo rict, ze se nekde vyskytuje sroubek a maticka, tak prece ten sroubek a maticka uz musi v DB existovat. Pokud ale chce nekdo nadefinovat novy smontovany produkt, ve kterem je novy typ sroubku a novy typ maticky a tohle chce ulozit do DB, tak zahajim transakci, vlozim do DB novy sroubek, novou maticku, novy smontovany produkt, priradim k nemu sroubek a maticku, ukoncim transakci.

    Ad 3, rozdily mezi SQL: Jak pisete, LIMIT/TOP. Pak me takhle z hlavy napadaji ruzne NOW, CURRENT_TIMESTAMP, nekdo umi VARCHAR(MAX) a jiny pouze VARCHAR(4000)...

    Ad 5+6, kusovnik a zacykleni: Tak na neco podobneho bych napr. pouzil nejakou stored proceduru na SQL serveru. Aplikace by ji poslala produkt, ktery me zajima, procedura by chvili chrochtala a vratila by tabulku dilu, ze kterych se dany produkt sklada. Protoze neovladam techniky popsane v tomto clanku, tak bych tu proceduru proste nejak upatlal v jazyce daneho SQL serveru. Nejak bych si tam holt osetril to zacykleni. Melo by to vyhodu, ze by to bezelo na serveru, takze hodne rychle, a ze serveru ke klientovi by sel pouze vysledek. Ale jak sam pisete, evidentne uz to mate nejak poreseno v klientovi/aplikaci.

    Jak pise Karel, nejspise v prvnim kole skoncite tak, ze SQL server pouzijete pouze jako novejsi uloziste dat, ale veskera inteligence zustane v aplikaci. Takhle probihala moje prvni brigada s SQL, kdyz jsem musel predelat nejakou aplikaci ve FoxPro, aby brala data z SQL. Taky jsem to tenkrat zvladl bez transakci, referencni integrity, stored procedur... protoze jsem to proste neznal.