Hirdetés
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Luck Dragon: Asszociációs játék. :)
- tordaitibi: Chatcontrol
- Bitfenix Outlaw
- ldave: New Game Blitz - 2025
- sziku69: Fűzzük össze a szavakat :)
- Elektromos rásegítésű kerékpárok
- bambano: Bambanő háza tája
- Geri Bátyó: Agglegénykonyha 3 – Paradicsomos káposzta (amit amúgy utálok)
- Gurulunk, WAZE?!
Új hozzászólás Aktív témák
-
fordfairlane
veterán
A Visual C++ 2013-as redistributable csomagot még kipróbálom, bár sztem ha 2015-el nem ment jó eséllyel ezzel se fog.
Jó eséllyel menni fog a 2013-mal. Ezek a runtimeok nem felülről kompatibilisek, ezért is lehet belőlük több verziót feltelepíteni egymás mellé.
Egyébként igazad van, a 6.3.9-től kezdve nincs 32 bites letölthető bináris:
Changes in MySQL Workbench 6.3.9
- Windows: Zip packages and 32-bit binaries are no longer published. The .NET Framework version 4.5 is now required.
-
fordfairlane
veterán
Vagy rakd fel a Visual C++ 2013 redistributable csomagot [link], vagy használd a Mysql Workbench 6.3.9 változatát.
Requirements for Windows:
- Microsoft .NET Framework 4.5
- Microsoft Visual C++ 2015 Redistributable PackageNote:
The 2013 version was changed to 2015 with MySQL Workbench 6.3.9. -
fordfairlane
veterán
válasz
TomyLeeBoy #1721 üzenetére
A / max regexp patterdefinícióknál okozhat gondot, sehol máshol. Elég elcseszett sztringkezelés lehetett abban a scriptben.
-
fordfairlane
veterán
válasz
Apollo17hu #1707 üzenetére
MySQL tud analitikus függvényeket?
Tudomásom szerint egyiket sem ismeri.
-
-
fordfairlane
veterán
Egyébként pont erre való az EXPLAIN, query-optimalizálásra.
-
fordfairlane
veterán
válasz
martonx #1446 üzenetére
Indexelés nélkül a nem kulcs mezőkön, nem gyorsítótárazott forráson a keresés-rendezés full table scant igényel, így nem csoda.
-
fordfairlane
veterán
Amikor szóvátették az adatszerkezet problémáit, nem arra hivatkoztál, hogy nem éri meg vele foglalkoznod, hanem hogy akkor redundáns lesz, meg lassítja a lekérdezést, és ehhez hasonlók. Márpedig ezek fals indokok, mert nem attól lesz redundáns az adatbázis, ha a relációkat a megfelelő elvek mentén feldarabolod, hanem attól, ha egyben tárolsz nem egybe tartozó adatmezőket. Ez abszolute szakmai dolog, szakmai téma, és te szakmai alapon kérdőjelezted meg a jogosságát.
Az igaz, hogy az nem igazán jó érv, hogy így "nem szép", meg hogy "nem eléggé tankönyvszerű", én ezért is próbáltam gyakorlatiasabban megközelíteni a témát, de a te indokaid pl. a sebességre vagy a lekérdezés bonyolultságára sem igazán állják meg a helyüket.
-
fordfairlane
veterán
válasz
Sk8erPeter #1432 üzenetére
Utólag refaktorálható az adatszerkezet. Egyébként az ilyen függőséget nem kell feltétlenül tankönyvszerűen kezelni. Ha nincs túl sok mező, amit érint a dolog, a NULL használata is korrekt megoldás.
-
fordfairlane
veterán
válasz
Sk8erPeter #1428 üzenetére
A lényeg: az akciós és aktuális árnak, aktuális szállítónak és egyebeknek semmi keresnivalójuk ugyanabban a táblában, amiben a termékek alapvető, ritkán változó paramétereit tárolod.
Ha ez a tranzitív függőség bennmarad, az még nem olyan nagy tragédia ( 3NF helyett csak 2NF ).
-
fordfairlane
veterán
Igazad van, nem jó példa. Ágyúval verébre. Ez inkább egy-egy feltételes kapcsolat lehet a legtöbb esetben, vagyis hogy a termékek egy része akciós, a többi nem. Mondjuk ebben az esetben is külön táblába tenném az akcióparamétereket, mert már megszoktam, hogy a "dolgokat", amiknek önálló attribútumai vannak (kezdet - vége), önálló objektumoként kezelem, még akkor is, ha csak egy kapcsolódó rekord lehet egy termékhez. Aztán valami ORM könyvtár elvégzi a betöltést-mentést-rekordösszefűzést.
-
fordfairlane
veterán
-
fordfairlane
veterán
Mert nalunk ugy megy, hogy kitalaljuk melyik termekunk mettol meddig akcios, nem pedig kitalaljuk holnap valami akcios lesz, de nem tudom mi
Máshol meg másként megy. Minnél nagyobb a kereskedelmi egység, annál inkább jellemnző, hogy az akciózás termékcsoportosító módon kerül kivitelezésre. Például úgy, hogy nem egy termék lesz akciós, hanem egy termékek csoportja. Majd ebbe az akcióba bevonódhat újabb termék. Aztán az akció meghosszabbodhat. Aztán kerül bele újabb termék. Aztán kikerülhet belőle bizonyos termék, mert pl. elfogy. Aztán kiderülhet, hogy túl jól sikerült az akció, ezért az összes termékre csökkenteni kell a mértékét. Vagy épp ellenkezőleg, nem sikerült túl jól, sok termék továbbra is készleten, megromlik pl. ezért növelni kell a kedvezményt az összes terméken.
-
fordfairlane
veterán
Itt az az alap tézis részetekről, csak rossz lehet mert sok oszlopa van
Nem az oszlopok számával önmagával van a probléma, hanem azzal a fajta adatszerkezettel, amivel letárolásra kerülnek a termékhez kapcsolódó adatok.
Jelen példa esetében a termékhez kapcsolódik egy akció, aminek vannak attribútumai, például kezdeti-, és végidőpontja. Ezt tranzitív függésnek hívják, és a probléma nem az, hogy egyben van, mert lekérdezés szempontjából ez az adatszerkezet kvázi "kész" van, csak ki kell íratni a mezőket, amire épp szükség van
A probléma a következők lehetnek:
1. beszúrási anomália
Addig nem tudsz létrehozni akciót, amíg nincs készen felvíve legalább egy termék, amihez hozzácsatolod.
2. módosítási anomália
Az akciók paramétereit az összes termékrekordon egyszerre kell végrehajtanod, különben inkonzisztens lesz az adatbázis (új akció keletkezik a semmiből, ha valami probléma folytán nem hajtódik végre minden termék rekordján a módosítás)
3. törlési anomália
Ha törölsz minden terméket, akkor az akció is törlődik magától. (Mellékhatás, amit ebben az adatszerkezetben nem tudsz megkerülni)
Ezek olyan nem várt mellékhatásai, amik problémát okozhatnak minden ilyennél, nem csak az akcióknál.
A normalizálás erről szól. Nem véletlenül találták ki több évtizede, és használják mindenhol.
És igen, ez azt eredményezheti, hogy akár egy mezőt is külön táblába kell tenni adott esetben, majd ellátni a megfelelő foreign key-jel, ( és persze erre majdhogynem automatikusan mehet rá az index, így a JOIN gyakorlatilag "költségmentes" lesz). Viszont így az adatszerkezet sokkal karbantarthatóbb lesz.
-
fordfairlane
veterán
válasz
Peter Kiss #1417 üzenetére
Mi kérünk elnézést?
Jah, hát lassan ott tart a dolog.
-
fordfairlane
veterán
akkor minden darabolással egy redundáns termék_ID oszloppal hízlalod az adatbázist...
Mert jellemzően nem attól lesz redundáns az adatbázis, hogy túl sok tábla kerül bele, hanem attól, hogy túl kevés. Például ebben a példában a közös akciókban szereplő termékeket nem tudod összekötni egymással, mert termékenként tárolod az akciók összes attribútumát. Aztán mi van akkor, ha egy adott termék más szállítótól érkezik, hogyan kapcsolod a kettő tételt össze, ha a termék statisztikájára vagy kíváncsi?
Ez az egész téma ráadásul egy adatbázis tervezési tanfolyam első leckéi közé tartoznak. Normálformák, ilyesmi. Alapvető dolog relációs adatbázisoknál. Ez az egész aggódás, hogy túl sok a tábla akkor szokott előjönni, ha a JOIN-ok vagy az indexek használata már lassan és nehézkesen megy, ami adatbáziskezelésnél viszont alapvető dolog.
-
fordfairlane
veterán
válasz
martonx #1369 üzenetére
Nem a tárolt eljárások létjogosultságát vagy hasznosságát kérdőjeleztem meg, hanem azt, hogy minek kell azon köröket futni, hogy ki használta és ki nem (és jájjdeámátőr) Sokan nem használják, mert nem a klasszikus Oracle, Sybase, DB2 vagy MSSQL-en tanultak, a Mysql-be meg később került bele. Vagy azért nem használják, mert korlátozottak a lehetőségek és emiatt úgyis szükség van egy alkalmazásszerverre, és ha már van alaklmazásszerver, akkor azon implementálnak minden funkcionalitást. Vagy azért, mert a tárolt eljárások még annyira sem egységesek a különféle vendorok közt, mint az SQL lekérdezések. Nincs azon semmi meglepő, hogy ilyen körülmények közt csomóan nem nyúlnak hozzá, csak ha muszáj.
-
-
fordfairlane
veterán
válasz
laracroft #1223 üzenetére
Ha a két lekérdezés túl sokáig tart, akkor egy is. Át kéne nézni / gondolni a táblák-mezők indexelését, amivel gyorsítani lehet az ilyesfajta lekérdezéseken.
A másik lehetőség, hogy, jellemzően webes környezetben sokkal több a táblából olvasás, mint az írás. Ebben az esetben azokat az aggregált adatokat, amelyek csak írás esetén változhatnak meg, és a lekérdezésük időigényes, előre ki lehet számolni, majd valahogy letárolni. Kvázi gyorsítótárazni. Mondjuk ez jelen esetben nem igazán járható út, de talán részhalmazokat elő lehetne állítani, amiket aztán gyorsabb átfésülni.
-
fordfairlane
veterán
-
fordfairlane
veterán
válasz
#68216320 #1140 üzenetére
Ha a mysqli interfészt használod, akkor inkább a mysqli_stmt::bind_params-t célszerű használnod. A példa alapján szerintem egyértelmű, hogyan kell használni.
Új hozzászólás Aktív témák
- Intel Core i5 / i7 / i9 "Alder Lake-Raptor Lake/Refresh" (LGA1700)
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Videós, mozgóképes topik
- Luck Dragon: Asszociációs játék. :)
- Gyúrósok ide!
- Autóápolás, karbantartás, fényezés
- Projektor topic
- Revolut
- Futás, futópályák
- Audi, Cupra, Seat, Skoda, Volkswagen topik
- További aktív témák...
- Asztali PC , i7 12700e , RTX 3070 , 32GB RAM , 512GB NVME , 1TB HDD
- INGYEN POSTA - ÚJ GAMER PC V111 DDR5 -i5-14400F -RTX 5060Ti -16GB RAM -1TB SSD -www.olcsogamerpc.hu
- INGYEN POSTA - ÚJ GAMER PC V100 - i5-12400F - RTX 5060Ti - 16GB RAM - 1TB SSD - www.olcsogamerpc.hu
- INGYEN POSTA - ÚJ GAMER PC V81 - DDR5 - i5-14400F -RTX 5060 -16GB RAM - 1TB SSD -www.olcsogamerpc.hu
- INGYEN POSTA - ÚJ GAMER PC V61 -DDR5 - i5-14400F -RTX 4060Ti -16GB RAM -1TB SSD -www.olcsogamerpc.hu
- ÚJ Lenovo LOQ 15IRX9 - QHD 165Hz - i7-13650HX - 16GB - 1TB - RTX 4060 - Win11 - 3 év garancia - HUN
- IKEA Format lámpák eladóak (Egyben kedvezménnyel vihető!)
- ÁRGARANCIA!Épített KomPhone Ryzen 7 5700X 32/64GB RAM RTX 5060 Ti 8GB GAMER PC termékbeszámítással
- Új állapotú, csúcstechnológiás Roborock Saros Z70 robotporszívó (katt a szóviccért!)
- BESZÁMÍTÁS! Asus ROG STRIX Z490-G Gaming WiFi alaplap garanciával hibátlan működéssel
Állásajánlatok
Cég: CAMERA-PRO Hungary Kft.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest