Keresés

Új hozzászólás Aktív témák

  • válasz martonx #9917 üzenetére

    Mielőtt egy friss programozó hozzányúl a kódhoz, megnézi, hogy épül fel az adatbázis, az rögtön látja, hogy hoppá, vannak triggerek, s máris ugyanott van, mint a tárolt eljárással. Na meg van egy olyan varázslatos dolog, hogy dokumentáció.

    Attól még, hogy neked rengeteg rossz tapasztalatod van valamivel kapcsolatban, nem biztos, hogy az az ördögtől való. Pl rengeteg PHP-ban írt "műalkotás" létezik, de attól még nem lesz a nyelv szemét. Ha a kacsa nem tud úszni, nem a víz a hülye. Persze ha az ember bizonytalan, akkor értelemszerűen inkább ne csinálja, nehogy az legyen az eredmény, hogy valami triggerben van, más meg alkalmazás szinten, tök random, rendszer nélkül.

    Az 1-2 sorral több PHP tök jó lenne, de sajnos nem igaz. Ha tegyük fel most le kéne cserélnem a triggereket PHP kódra, akkor pl egy új hsz felvitelénél egy sima INSERT mellett még ezeket kéne megcsinálnia a PHP kódnak:

    - téma hsz-számának és utolsó hsz ID-jének frissítése
    - téma utolsó hozzászólójának frissítése
    - keresőindex frissítése
    - particionálás kezelése
    - a hozzászóló itt szóltam hozzá listájának frissítése
    - a hozzászóló hsz-számának növelése (fórumtól függ, hogy milyen típusú)
    - a hozzászóló rangjának léptetése, ha olyan van
    - stb.

    Ha ezek bármelyike nincs, akkor borul a konzisztencia, ezért véleményem szerint az adatbázisban a helyük. Az alkalmazás feladata szerintem az, hogy validációt elvégezze a bemenő adatokon, s azokat az adatbázisnak megfelelő formába hozza és felvigye oda. Azzal nem kell foglalkoznia, hogy bizonyos származtatott vagy kapcsolódó adatok konzisztenciáját fenntartsa. Ezt persze nem kell elfogadni, csak azt próbálom megértetni, hogy mikor lehet létjogosultsága a triggereknek.

    [ Szerkesztve ]

    A RIOS rendkívül felhasználóbarát, csak megválogatja a barátait.

Új hozzászólás Aktív témák