- D1Rect: Nagy "hülyétkapokazapróktól" topik
- eBay-es kütyük kis pénzért
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- Mr. Y: Motoros sztorik #06
- Elektromos rásegítésű kerékpárok
- gban: Ingyen kellene, de tegnapra
- hdanesz: Elektromos autózás - első élmények
- Lalikiraly: SÜNI energiaital.
- Magga: PLEX: multimédia az egész lakásban
-
LOGOUT
Új hozzászólás Aktív témák
-
fordfairlane
veterán
A csak tárolt eljárással való API-s megoldás nem jó, mert közvetlenül a tábla adatait szeretnéd piszkálni, akkor borul az egész. Triggerekkel maga az adatbázis önmagában is megáll, nem kell tudni semmilyen API-t, hogy jól működjön, mert elrejti a piszkos részleteket, it just works.
Pont ezért nem hagyod, hogy közvetlenül írja a táblát. Ez egy kezdetleges OO egységbezárás, SQL módra.
-
fordfairlane
veterán
Ez tipikusan olyan lépéssorozat, ami egy tárolt eljárásban szépen, áttekinthetően implementálható, lépésről lépésre. Semmi szükség triggerekre, és az általuk jelentett rejtett adatfüggőségekre. A PHP-nak nem kell a hozzászólásokat tároló táblát piszkálnia, csak a tárolt eljárás nyújtotta API-hoz kell tudnia hozzáférni,a többit az eljárás intézi.
Az adatbázis triggerekkel az a baj, hogy a legtöbb relációs adatbázis event-driven modellje meglehetősen kezdetleges, nehezen összeegyeztethető a konkurens adatkezeléssel. Ezért is van az, hogy a kőegyszerű triggerekről továbblépve könnyen belefut az ember a susnyásba.
-
martonx
veterán
Nem azt mondtam, hogy nem szabad, hanem azt mondtam, hogy kerülendő, és tipikus rossz gyakorlat. Amiket felsoroltál, hogy trigger csinálja, hát azt se mondanám jó gyakorlatnak, még ha így utólag nézve kényelmesnek is tűnik, és francnak van kedve normális kóddá refaktorálni 1-2 nap alatt a most is működő megoldást
De mindegy hagyjuk, részemről a téma lezárva.
-
Az a baj, hogy a való életből vette a példát, amit én is alá tudok támasztani. Egy jó nevű autó gyártó cégnek karbantartottam szoftver majd a válság idején kikerült indiába majd vissza. Szóval ami te csinálsz az high quality de amit más nem biztos.
"Azzal nem kell foglalkoznia, hogy bizonyos származtatott vagy kapcsolódó adatok konzisztenciáját fenntartsa"
De igen, az is.
-
martonx
veterán
"Mi értelme lenne kézzel hívnom, ha lehet automatikus?" - az, hogy ha téged holnap elüt a villamos, és te ugyan tudod, hogy mik a saját konvencióid, és mit miért csináltál, és odaültetnek a helyedre valaki mást, akkor az 3 hónapig azt se fogja tudni, hogy fiú-e vagy lány.
Rengeteg ilyen kódot vettem át, örököltem már meg, és mindig borzalmas volt lekövetni ezeket az elrejtett hülyeségeket, amik ráadásul jobban átgondolva éppen semmit nem is adnak hozzá kód futásteljesítményéhez, azon kívül, hogy kódban az ember esetleg megspórol 1-2 sornyi PHP-t. -
martonx
veterán
A triggerekkel az a baj, hogy a tárolt eljárásokkal szemben abszolút debugolhatatlanok, nyomon követhetetlenek. Sőt az egész DB-t simán össze tudják omlasztani ha véletlenül valami deadlock befigyel a futásuk alatt.
Érted, a kódban debugolod, hogy mi történik és miért, meghívsz egy tárolt eljárást, akkor ugyan kontextust kell váltania hozzá, de semmivel nem nehezebb nyomon követni, hogy mi történik, nincs semmi rejtett varázslat.
Míg ha van pár triggered, amik netán még egymás módosításai miatt is elsülnek, akkor meg nézel baromi nagyokat, hogy neked most akkor miért nem futott le az inserted itt, helyette lett update amott, és kezdheted az egész db-t felderíteni, és mindezt folyamatosan fejbe kell tartanod, hogy ha itt kódban kiadsz egy insertet, akkor amott fog updatelni. Amíg az ember magának kókányolgat, addig semmi baj nincs a triggerekkel, illetve bizonyos esetekben tök ártalmatlanok, de alapvetően fejlesztésnél messzire kerülendő tipikus rossz gyakorlat a használatuk.A hozott példáid egytől egyig megoldhatóak lennének kódból, semmi hozadékuk nincs triggerekben tartani ezeket a logikákat (vagy átírni őket egy-egy tárolt eljárásra, még mindig sokkal karbantarthatóbb, áttekinthetőbb lenne).
-
bambano
titán
postgreshez anno volt olyan cluster megoldás, ami az sql kéréseket szórta szét a node-ok között. utána a kéréseket minden node-on kiértékelte. így a random függvény is lefutott minden node-on külön. az összes jelszó meg autentikációs token meg minden ilyen, amiben véletlenszám is volt, úgy szétszaladt, hogy nem is lehetett többet összeterelni.
-
akrobet
tag
Egy teljes 180 fokos fordulat SQL-ről No-Sql-re tényleg nem valószínű, de egy hibrid megoldás sokkat inkább, pl. egy gráf alapú adatbázis mint a Neo4J az applikáció azon részére, ahol az SQL join már nem járható út (és nem szeretnéd agyon-normalizálni a tábláidat és duplikálni az adatot). És akkor szerintem jobban fogok örülni, hogy a bonyolult model struktúra és logic amit le akarok cserélni nem SQL-ben van, hanem CSharpban.
De lehet, hogy ez csak egy egyedi eset nálunk és senki másnál ilyen nem fordult még elő
-
spammer
veterán
Ja már értem, a dupla klikkes dolgot javítandó.
Ez addig jó, amíg programkódból áll a hozzászólás, de ha utána akarunk írni még valamit, akkor már nem biztos, hogy kényelmes monospace betűkkel megírni. Illetve bármilyen más szövegrésznél is zavaró lehet, mert nem lehet menet közben kikapcsolni monospace megjelenítést. Szerintem praktikusabb egy toggle megoldás (button, checkbox, akármi).
-
sztanozs
veterán
LOLCODE-ot is felismeri?
pingback - http://itcafe.hu/tema/re_unalmasak_a_programkodok_bosszantsd_magad_pikto/friss.htmlHAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
UP VAR!!1
VISIBLE VAR
IZ VAR BIGGER THAN 10? KTHX
IM OUTTA YR LOOP
KTHXBYEVan még mit dolgozni rajta
Új hozzászólás Aktív témák
Hirdetés
● olvasd el a téma összefoglalót!
- Egyre csak fejlődik az AI, emberek tízezreit rúgja majd ki a BT
- CPU léghűtés kibeszélő
- ASUS ROG Ally
- Egyszerre legnagyobb és legkisebb is a Garmin Venu X1
- Vezetékes FÜLhallgatók
- Metal topik
- Amatőr csillagászat
- Kazy Computers - Fehérvár - Megbízható?
- Mikrotik routerek
- CURVE - "All your cards in one." Minden bankkártyád egyben.
- További aktív témák...
- Apple watch Ultra 2 black edt 2027.11.07 Apple jótállás+ Apple Care +
- Garanciával, MSI Crosshair 15 B12UEZ gamer laptop i7, RTX 3060 6gb vram, 32 gb ram. DDR4, 1TB SSD.
- Csere-Beszámítás! AMD Ryzen 7 7700 Processzor!
- Csere-Beszámítás! AMD Ryzen 8700G Processzor!
- Csere-Beszámítás! AMD Ryzen 5 9600X Processzor!
- Apple iPhone 13 128GB, Kártyafüggetlen, 1 Év Garanciával
- Wacom Cintiq DTK-2260 - Digitális rajztábla
- LG 34GS95UE - 34" Ívelt OLED / QHD 2K / 240Hz & 0.03ms / 1300 Nits / NVIDIA G-Sync / AMD FreeSync
- Tablet felvásárlás!! Apple iPad, iPad Mini, iPad Air, iPad Pro
- Samsung Galaxy J6 2018 32GB, Kártyafüggetlen, 1 Év Garanciával
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: Promenade Publishing House Kft.
Város: Budapest