Hirdetés
- gban: Ingyen kellene, de tegnapra
- Magga: PLEX: multimédia az egész lakásban
- juhi11: Karácsony esély, hogy észrevegyük: mások is valakik - még Isten is
- Torda: Így lehet fillérekből prémium okosotthon rendszert építeni 2025-ben
- GoodSpeed: Munkaügyi helyzet Hajdú-Biharban: észak és dél
- Luck Dragon: Asszociációs játék. :)
- Gurulunk, WAZE?!
- sziku69: Szólánc.
- sziku69: Fűzzük össze a szavakat :)
- btz: Internet fejlesztés országosan!
Új hozzászólás Aktív témák
-
B-L-A-C-K
titán
válasz
Sk8erPeter
#1099
üzenetére
5.2.5 kerestem ezt nem találtam, és mivel ugye fogalmam sincs hogy jó e másik verzió ezért nem szedtem le az 5.x.x-es verziót megkérdezés előtt. De ezek szerint úgy látom teljesen min1 mit szedek le. Viszont ha te már így állsz hozzám ahogy leírtad, kb hogy be sem tudom kapcsolni a gépet, akkor nem is kéne válaszolnod. Gondolom te már kisujjból kirázod az ezzel kapcsolatos dolgokat, de mivel én most találkozok először ilyennel így szerintem nem olyan meglepő hogy nem tudom pontosan mit is kéne letölteni hozza...
-
Sk8erPeter
nagyúr
válasz
B-L-A-C-K
#1098
üzenetére
Remélem csak viccelsz... [link] >>> második találat.... (de persze az első is a php.net oldalára visz, onnan is nyugodtan elkalauzolhatsz...)
Már a Wikipédia vonatkozó szócikkéből is kiderül kb. 3 másodperc Guglizás után, hogy "a PHP szabad szoftver"...
Ha már ez is gondot okoz, akkor szerintem jobban jársz, ha felkeresel egy rendszergazdát, aki X összegért bevállalja neked az egész összeállítását, lehet, hogy nem lesz olcsó, de esélyes, hogy működőképes lesz a rendszered - most ezt nem rosszindulatból mondom, de azért egy publikusan elérhető szerver felállítását nem lehet elviccelni, meg ingatag lábakon hagyni. -
B-L-A-C-K
titán
Nem nagyon boldogulok ezzel az egésszel, de nem is csodálom, kb olyan szituba vagyok mint akinek meg kéne tanulni pár nap alatt zongorázni de sose zongorázott előtte...

PHP-5.2.5 (x64) kéne nekem windows 2008 r2-höz, ezt ingyenesen legálisan le lehet szedni valahonnan?
Illetve ha valaki nagyon ráér privátban tudna nekem segíteni, elmondanám mit is kéne igazából csinálnom...

-
Sk8erPeter
nagyúr
válasz
WolfLenny
#1093
üzenetére
Pont ilyen kérdést tettek fel Stack Overflow-n: [MySQL - Selecting data from multiple tables all with same structure but different data]
Ott javasolt megoldás:
(SELECT * from us_music where `genre` = 'punk')
UNION
(SELECT * from de_music where `genre` = 'punk') -
WolfLenny
senior tag
Sziasztok!
Egyik kollégámnak szeretnék segíteni. MySQL-ben fejleszt. A kérdés:
Van két (vagy több) tábla ami azonos struktúrával rendelkezik. Havi adatok. Viszont vannak olyan lekérdezések amikor pl. 6 havi adatból kell. Nem szeretnénk egyenként megnyitni és lekérdezéseket csinálni. Meg lehet azt oldani, hogy mondjuk 6 db táblát megnyit és azt a lekérdezés idejére "összefűzi". Tehát olyan mintha a 6 tábla egybe lenne..
Ezt meg lehet csinálni? Érthető a kérdésem?

Előre is köszi a választ...
-
Speeedfire
félisten
válasz
Sk8erPeter
#1091
üzenetére
Valóban lehet 2 timestamp így. Max a create lesz megadva feltöltéskor, az on update meg a modify. Így talán a legjobb.

-
Sk8erPeter
nagyúr
válasz
Speeedfire
#1090
üzenetére
Nyilván MySQL-ről van szó.
Lehet 2 timestamp 1 táblában.
Ami a baja, hogy ha van két timestamp egy táblában, azt nem lehet megcsinálni, hogy az egyik mezőnek defaultból CURRENT_TIMESTAMP az értéke, ÉS a másiknak pedig on update CURRENT_TIMESTAMP tulajdonsága van. Ahogy az sem lehet, hogy mindkettő mezőnek on update CURRENT_TIMESTAMP tulajdonsága van, vagy mindkettő mezőnek CURRENT_TIMESTAMP a default értéke.
Választani kell. -
Speeedfire
félisten
Miért nem lehet 2 timestamp 1 táblában?
Ki akartam próbálni valamit.
Csináltam egy példa táblát, létrehoztam egy id-t, ami AI. Majd egy create-et, ami timestamp és default current_timestamp, akartam csinálni egy másikat is modify néven, de nem engedte, ez is ugyan az lenne mint a create, csak ugye on update current_timestamp.
Írja is az sql, hogy:
#1293 - Incorrect table definition; there can be only one TIMESTAMP column with CURRENT_TIMESTAMP in DEFAULT or ON UPDATE clause -
-
martonx
veterán
válasz
B-L-A-C-K
#1085
üzenetére
Nem tudhatjuk, hogy mire kell neked.
Egyébként három fő limitációja van az ingyenesnek:
1. Csak 1 db processzor magot használ ki
2. Csak 1 Gbyte memóriát használ ki
3. 10Gb-nál nem lehet rajta nagyobb az egyes DB-k méreteHa nincsenek nagy DB-id, és nem több száz párhuzamos felhasználóra akarsz felkészülni (hanem csak néhányra), akkor ezen limitációkkal simán együtt lehet élni.
-
B-L-A-C-K
titán
Sziasztok!
Szinte semennyire se vagyok jártas SQL-ben, de még szerver környezetben sem nagyon, szóval ha hülye kérdéseket fogok feltenni nézzétek el nekem...

Adott egy Windows 2008 R2 Standard (x64) oprendszer, erre kéne nekem felraknom egy SQL 2008 Server-t, ez valahonnan ingyen legálisan letölthető, vagy meg kell vásárolni hozzá? Illetve ha igen mennyibe kerül egy ilyen?
Elsőre ennyi lenn a kérdésem, válaszokat előre is köszönöm...
-
bpx
őstag
-
rum-cajsz
őstag
Csak azokat a mezőket érdemes indexelni, amire keresni akarsz.
Ha a kereséseid több mezőre egyidejűleg történnek, akkor érdemes több mezőre összetett indexet tenni, sőt ha valamilyen függvényt használsz, akkor függvény alapú indexet érdemes használni.
Minél több indexed van, annál lassabb lesz az insert és a delete, mert a sorok felvételével és törlésével egyidejűleg az indexsorok létrehozása is létrejön, törlődik.
Ha többféle lekérdezés is történik a táblán, akkor érdemes lehet több oszlopra is indexet tenni a lekérdezések függvényében.
Összetett index esetén csak akkor fog működni az index alapú keresés, ha az első oszlop legalább benne van a feltételek között.És azért van ilyen neved (SYSxxxxx), mert nem nevezted el az indexet létrehozáskor (pl. primary key definiálásakor), ilyenkor egy rendszer által generált néven jön létre az index.
-
Sk8erPeter
nagyúr
"egyébként az exec-et már korábban átírtam prepare-re, de tény, hogy attól a paramétereket ugyanúgy beleírtam a query-be"
Akkor esélyes, hogy ez volt a gond egyik okozója.
OK, majd írd meg, mi lett a vége.
Szerk.:
"Kivételt nem kezeltem, de otthon majd átírom ilyenre, remélem megoldódik ilyen módszerrel"
Hát nem a kivételkezeléstől fog megoldódni, az biztos.
A kivételkezelés csak egy szép módja a hibakezelésnek, ennyi. Attól még önmagában nem megoldott az adatok helyes feltöltése, csak így könnyű elkapni az eldobott kivételt, ha valahol hiba keletkezett. -
Jim-Y
veterán
válasz
Sk8erPeter
#1074
üzenetére
Ohh, egyébként az exec-et már korábban átírtam prepare-re, de tény, hogy attól a paramétereket ugyanúgy beleírtam a query-be -.- Kivételt nem kezeltem, de otthon majd átírom ilyenre, remélem megoldódik ilyen módszerrel, mert akkor ezzel több dolgom már nincs

Este tudom kipróbálni, majd megírom, hogy ez megoldotta-e a problémát.
-
Sk8erPeter
nagyúr
"Más" utáni részre reagálva:
A PDO exec() függvényét használod itt? Vagy ez saját wrapper osztály?
Ha a PDO-é, akkor azonnal felejtsd el, hogy exec() metódus használatával közvetlenül beleraksz felhasználótól érkező adatot. Meg nem ártana, ha kivételeket kezelnél.
Nem is értem, pont az a lényege a PDO-nak, hogy szépen lehet vele az adatokat kezelni, prepared statementeket lehet vele használni, így escape-elgetni sem kell a karaktereket, épp ez az egyik legjobb benne, de a másik pedig az előkészített query által megvalósítható szép kód - nincs szükség okádék string-összefűzögetésre, mint - bocs - a Te kódodban.
Tele von Zsinór kolléga a PHP topicban belinkelte a saját cikkét a témában, ami elég jól összefoglalja a dolgot:
http://maerlyn.eu/2011/12/03/pdo.htmlTehát
$db->exec("INSERT INTO offers (offer_id,description,images) VALUES ('$provider_id','$htmlcontent', '".$_FILES['uploaded_image']['name']."');");
FELEJTŐS, HELYETTE:$dbh = NULL;
try {
// felhasználónév, jelszónál saját adat behelyettesítendő
$dbh = new PDO("mysql:host=localhost;dbname=test", "root", "root", array(
PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES UTF8;',
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION
));
// ..............
$sth = $dbh->prepare('INSERT INTO offers (offer_id,description,images) VALUES (:offer_id, :description, :images)');
$sth->bindParam(':offer_id', $provider_id, PDO::PARAM_INT);
$sth->bindParam(':description', $htmlcontent, PDO::PARAM_STR);
$sth->bindParam(':images', $_FILES['uploaded_image']['name'], PDO::PARAM_STR);
$sth->execute();
echo 'Úgy tűnik, minden OK.';
}
catch (PDOException $err) {
echo 'Hiba: ', $e->getMessage();
}
catch (Exception $e) {
echo 'Másik hiba: ', $e->getMessage();
}Itt feltételeztem, hogy az offer_id egy INT.
Meg természetesen a kivételeket inkább naplózni kéne, és felhasználóbarát üzeneteket kiírni.Ja, és a fentivel nagy eséllyel kerülhető el az általad említett probléma.
Legalábbis remélem. Majd írd meg, mire jutottál. -
Jim-Y
veterán
válasz
martonx
#1072
üzenetére
Nem..ne haragudj, de lehet ami neked már evidens, az nekem még új, mivel ezekkel most találkozom először. Nekem úgy jött le, hogy a Toad for Mysql-t akkor kéne felraknom, ha van eléres a tényleges hosthoz, oda töltöm fel az adatbázist, és a TfM-el azt szerkesztem a saját gépemen. Mivel nem használtam még, ezért nekem az most csak egy név, jelentés nélkül, és igen, mivel teljesen kezdő vagyok, ezért tanácstalan is
Na de akkor felteszem.. -
martonx
veterán
Nem értelek. Minden adott a problémád megoldásához, a megoldásokat leírtam/leírtuk, de te nem csinálod meg. Mit vársz tőlünk? Menjünk át hozzád, és helyetted rakjunk fel egy Toad for Mysql-t, majd rakjuk fel az sql dumpot a lokális gépedre, és szépen nézegessük át veled az egészet? Majd magyarázzuk el, és simogassuk meg a buksidat?
-
Jim-Y
veterán
válasz
martonx
#1070
üzenetére
Nem, ez egy létező sql-ből készített (exportált) .sql file, amit megkaptam, hogy ebből majd rá fogok jönni, hogy hogy épül fel az adatbázis/tábla. Ezért szeretném ezt megnyitni, gondoltam beimportálom phpmyadmin-ba, és ott majd megnézem, lehet akkor le kéne szednem egy third party SQL viewert? Mondjuk az sem oldja meg azt, hogy én kóddal, ebből az adatbázisból ki szeretnék majd nyerni adatokat, tehát mindenképp be kéne valahogy töltenem egy adatbázisba :/
Más:
van egy ilyen php kódom:
$htmlcontent = file_get_contents($html_path);
$db->exec("INSERT INTO offers (offer_id,description,images) VALUES ('$provider_id','$htmlcontent', '".$_FILES['uploaded_image']['name']."');");
unlink($html_path);
echo $htmlcontent;A $htmlcontent-ben van egy cca 2-300 karakter hosszó szöveg, ezt szeretném feltölteni az adatbázisba, mégpedig a description mezőbe, ami longtext tipusú. A query lefut, és majdnem mindent megfelelően tölt fel, csak a descriptiont nem, csak 5 karakternyit tölt be a mezőbe valamiért
utána kiirattam php oldalon a $htmlcontent-et, de abban szépen benne van a szöveg, tehát az adatbázis szarakszik valamiért, és nem tudok rájönni, hogy miért:/ -
Jim-Y
veterán
válasz
PazsitZ
#1065
üzenetére
a mysql nem egy felismerhető parancs:/
martonx: nincs elérésem a hosting mysqljéhez, itthon kell lokális gépen megírnom a programot, amit majd átportolok az éles környeztbe, egyszer...ezért szenvedek az xampp-al, meg a phpmyadminnal ami egyébként egy bughalmaz szerintem, de nincs jobb ötletem:S A fejlesztés szempontjából kénytelen vagyok itthon futtatni egy apachot és egy mysql-t, hogy úgy tudjam írni a programot..:/
-
martonx
veterán
"a gépemen xampp van csak" - ezek szerint saját gépen fut a mysql??? Ez esetben kérlek, a saját érdekedben tegyél fel egy Toad for MySql-t, a phpmyadmin-t meg hagyd meg a vérpistikéknek, vagy azoknak a szerencsétleneknek, akiknek nincs elérésük a hosting környezet mysql-éhez, mégis éles környezetben kell mókolniuk az sql-ben.
-
Jim-Y
veterán
válasz
Lortech
#1058
üzenetére
Köszi a választ

Lenne még egy kérdésem, kaptam egy sql dump filet, amit szeretnék betölteni phpmyadmin-ba, de insert után azt írja, hogy a file túl nagy, és nem tudja betölteni. Nekem csak a tábla szerkezetére lenne szükségem, valami ötlet, hogy hogyan tudnám használhatóvá tenni fájlt? 38.5mb-os...
-
wolandino
tag
SELECT data_connections.connection_id, NULL AS isTree
FROM `data_connections`
UNION
SELECT data_connections.connection_id, data_trees.connection_id AS isTree
FROM `data_connections`
JOIN data_trees ON data_trees.connection_id = data_connections.connection_idVan ez a lekérdezésem, ami jól is működik, azt is adja amit kell.
Az lenne a kérdésem, hogy nem lehetne-e valahogy legyszerűsíteni?
egy olyan "join" kellene nekem, amiben ha egy connection_id nem található meg a connection_tree-ben, akkor null-ot ad vissza....segítségnek itt van a lekérdezés eredménye:
connection_id isTree
1 NULL
5 NULL
7 NULL
1 1 -
Lortech
addikt
Ha 1 - több kapcsolat van a két tábla között, akkor a kapcsoláshoz nem kell több.
A child/detail táblában felveheted még foreign keynek a mezőt, tudsz constraintet is definiálni hozzá, amely megakadályozza, hogy a child táblában létrejöjjön rekord megfelelő parent/detail nélkül, illetve meghatározhatod, hogy mi történjen, ha a parent táblában módosul vagy törlődik az adott kulcsú rekord. Storage engine-től függ, hogy támogatja-e az FK-t, InnoDB támogatja csak. -
Jim-Y
veterán
Sziasztok, létre szeretnék hozni phpmyadmin alatt mysql-ben egy adatbázist 4 táblával. A kérdésem a következő:
1. tábla -> range_desc_id
2. tábla -> range_desc_id
ezeket szeretném összekapcsolni, hogy lehet ezt megcsinálni amikor létrehoztam a táblákat, de még nincs adat bennük?Mert az oké, hogy utána lekérdezésnél WHERE table1.range_desc_id=table2.range_desc_id, de ezt nem kell összekötni az adatbázisban valahogy? üdv
-
InfiniteReality
őstag
válasz
InfiniteReality
#1042
üzenetére
Megoldottam úgy, hogy csak racionalizáltam a mezőket és minden mezőhöz megfelelőbb adattípust választottam, mint ami eddig volt (ezzel 1 mb-tal kevesebb lett a tábla mérete), illetve az olyan mezőkről amikre nem irányul sok lekérdezés illetőleg kevésbé befolyásolják a végeredményt, levettem az indexet (eddig minden mezőn volt index, ami miatt a beírás volt lassabb).
Lényeg, hogy végül hagytam az egész táblát egyben, nem csaptam szét évekre, mert a lekérdezés több erőforrást igényelt volna ha sikerül rendesen megírni, mint az, hogy a tábla egyben van. Olyan 162 ezer sora van jelenleg az érintett táblának. -
martonx
veterán
válasz
wolandino
#1043
üzenetére
megismerve a feladatot, ez egy darab táblával kényelmesen megoldható.
Oszlopok:
azonosító, szülő, értékÉs pl. így nézne ki egy-egy sor:
1, 0, élőlény
2, 1, állat
3, 1, növény
4, 2, tigris
5, 2, krokodil
6, 3, pálma
7, 3, ibolyaAz első legördülő mezőben megmutatod az élőlényt
A másodikban állat, vagy növény.
Ez alapján a harmadikat feltöltöd az 2-es vagy a 3-as szülőjű tételekkel.
Ráadásul elég csak a legutolsó választást letárolnod pl. 6. Ebből visszakereshető, hogy a választott érték pálma, ennek a szülője a növény, ami pedig az élőlényekből származik. -
InfiniteReality
őstag
válasz
PazsitZ
#1053
üzenetére
Biztos csak elírás annak a részéről, aki ezt leírta. Vagy régi php/mysql verzióra vonatkozik (nálam mindkettőből 5-ös van).
Szinten mindenhol lecseréltem a num_rows-t affected_rows-ra és működik.Ez működik:
SELECT jatekos, sum(pont) FROM jateklista WHERE pont >='1' GROUP BY jatekosl ORDER BY 2 LIMIT 50Utána egy if mysql_affected_rows() > 0 van annak eldöntésére vannak-e eredmények vagy sem. Ezzel a paranccsal (és egyben lévő adatbázissal) bemegy abba az ágba, ahol ki kell írni az eredményeket.
(SELECT jatekos, sum(pont) FROM jateklista2005 WHERE pont >= '1' GROUP BY jatekosl) UNION (SELECT jatekos, sum(pont) FROM jateklista2006 WHERE pont >= '1' GROUP BY jatekosl) ORDER BY 2 DESC LIMIT 50
Ez az évekre szétdarabol adatbázisra készült és működik, de nem a várt eredményt hozza, nem azt amire szükségem lenne.
-
PazsitZ
addikt
válasz
InfiniteReality
#1052
üzenetére
Amennyiben csak elírás, akkor vedd semmisnek a következőket:
Select művelet eredményéről beszélünk. a mysql_affected_rows INSERT, UPDATE, REPLACE or DELETE parancsok esetén adja vissza az érintett sorok számát. Ez SELECT esetén mindig 0 értéket ad vissza.
Ilyen esetben (SELECT) a mysql_num_rows parancs adhat valós értéket. -
InfiniteReality
őstag
válasz
PazsitZ
#1051
üzenetére
Kell vagy nem, egy if (mysql_affected_rows() >0) paranccsal le van kezelve, hogy van-e a lekérdezésnek eredménye. Az első hozzászólásomban lévő mindkét lekérdezésnek van eredménye, az egyik jó, a másik hibás. Amiket beirtatok azoknak pedig nincs eredménye, de hibát sem okoznak...
-
PazsitZ
addikt
válasz
InfiniteReality
#1049
üzenetére
Pedig kell lennie valamilyen eredménynek, legalábbb egy hibaüzenetnek vagy valami.
Ha valami hibát is közölsz, talán tudunk segíteni. -
martonx
veterán
válasz
InfiniteReality
#1045
üzenetére
miért ne lehetne az union-t group by-olni?
Másrészt 428 ezer sor miatt szedted szét?
Majd ha sok millió sor lesz benne. Talán inkább rendesen indexelni kellene, ha a 428 ezer sor lassú. -
PazsitZ
addikt
válasz
InfiniteReality
#1045
üzenetére
SELECT jatekos, SUM(pont) AS pont FROM (
(SELECT jatekos, sum(pont) AS pont FROM jateklista2005 WHERE pont >= 1 GROUP BY jatekosl)
UNION
(SELECT jatekos , sum(pont) AS pont FROM jateklista2006 WHERE pont >= 1 GROUP BY jatekosl)
) AS sumtable
GROUP BY jatekos
ORDER BY pont DESC -
InfiniteReality
őstag
válasz
ArchElf
#1046
üzenetére
Ennyire nem vágom mélyen a MySQL-t, esetleg leírnád hogyan állítsam össze a lekérdezést? Temp táblát nem szeretnék ehhez használni...
Ha ennyire nehéz az évekre bontott táblákból megoldani ezt a fajta lekérdezést, akkor hagyom egyben, de már 428ezer sort tartalmaz az adatbázisnak ez a táblája, s gondoltam az egyes évekre irányuló lekérdezések valamint az új beírások az aktuális évbe gyorsabbak lesznek, ha szétcsapom az egészet évekre... -
ArchElf
addikt
válasz
InfiniteReality
#1045
üzenetére
Tedd bele az union-t egy view-ba (vagy temp táblába), és az már majd lehet...
AE
-
rum-cajsz
őstag
válasz
InfiniteReality
#1042
üzenetére
Csak annyi hiányzik, hogy a lekérdezésed most évenként jön fel, szóval kívülre kell még egy group by.
Vagy csinálsz egy nézetet a szétbontott táblákra, és akkor elég egy group by a nézetre.pl:
SELECT jatekos, sum(pont) FROM
(
SELECT jatekos, pont FROM jateklista2005 WHERE pont >= '1'
UNION
SELECT jatekos, pont FROM jateklista2006 WHERE pont >= '1'
)
GROUP BY jatekos
ORDER BY 2 DESC LIMIT 50 -
InfiniteReality
őstag
válasz
ArchElf
#1041
üzenetére
Kérdés, adott egy adatbázis, amit szétdobtam az egyik mező adatai alapján évek szerint külön táblákba (tehát minden év összes bejegyzése külön táblában van már).
Amikor az egész egyben volt, akkor az alábbi lekérdezés hibátlanul működött (a jatekosl mező tartalma ugyanaz mint a jatekos mezőé, de kisbetűsítve):
SELECT jatekos, sum(pont) FROM jateklista WHERE pont >='1' GROUP BY jatekosl ORDER BY 2 LIMIT 50
Az évek szerint szétdobott táblák esetén a következő lekérdezést alkalmaztam, hogy a fenti eredményt elérjem (csak 2 évet írok le, mivel a teljes időszak lekérdezését PHPban állítom elő dinamikusan, a hiba úgyis ugyanaz):
(SELECT jatekos, sum(pont) FROM jateklista2005 WHERE pont >= '1' GROUP BY jatekosl) UNION (SELECT jatekos, sum(pont) FROM jateklista2006 WHERE pont >= '1' GROUP BY jatekosl) ORDER BY 2 DESC LIMIT 50
A hiba pedig az, hogy minden játékos annyiszor szerepel, ahány évben beleesik a fenti lekérdezésbe. Nyilván valami alap dolgot rontok el, de remélem tudtok segíteni
Esetleg ha valakinek van "szebb" megoldása, megköszönöm. 
-
wolandino
tag
válasz
martonx
#1038
üzenetére
bármi kapcsolódhat bármivel, de nem minden mindennel.
Egymás alatt vannak a listák, amik egy meghatározott fogalom pontosításait adjákpl: első legördülőben kiválasztom a lehetőségek közül az élőlényt
így a második legördülőben már csak élőlények csoportjai vannak kiválasztom a gerinceseket
a harmadikban így csak a gerincesek vannak, abból kiválasztom az emlősöket,
stb...
vannak listák, amelyek nem függenek semmitől, és tőlük sem függ semmi, de sajnos azt még nem tudom, hogy mi mitől fog függeni, ráadásul ez változhat is, így inkább egy általános modelt próbálok megadni, ami flexibilis. -
martonx
veterán
válasz
wolandino
#1037
üzenetére
"Arra gondoltam, hogy két táblára lenne szükségem
az egyik mondjuk table_connect(melyik_táblát, melyikkel)
a másik pedig a data_tree( melyik_tábla, melyik_adata_id, melyik_táblával, melyik_adatával_id)"Erre. Javaslom, hogy ez a koncepció helyett minden tábla között, ami között sok-sok kapcsolat lehet, vegyél fel külön kapcsolótáblákat. Ettől még a te ötleted is működik.
Ha pedig 10 tábla közül minden kapcsolódhat mindennel, akkor ott valami alapvetően félre van tervezve. -
wolandino
tag
válasz
martonx
#1036
üzenetére
Köszönöm

Igen, azért van szükség a kapcsolódó táblára, mivel valószínűleg elő fog fordulni a sok a sokhoz eset, ezt sajnos még nem tudom, a felhasználó fogja eldönteni..."Ha már kapcsoló táblád van, érdemes tábla-tábla közé létrehozni egy-egy kapcsoló táblát, legalábbis az ORM-ek ezeket tudják értelmesen feldolgozni, és itt már csak felesleges túlbonyolításnak érzem, egy nagy kapcsoló táblát létrehozni."
Itt nem nagyon értem, hogy mire gondoltolál

-
martonx
veterán
válasz
wolandino
#1035
üzenetére
mivel nulla konkrétumot árultál el...
Általánosságban:
Kapcsoló tábla jellemzően a sok a sokhoz esetben kell, a többi esetet sima foreign key-ekkel meg tudod oldani.
Ha már kapcsoló táblád van, érdemes tábla-tábla közé létrehozni egy-egy kapcsoló táblát, legalábbis az ORM-ek ezeket tudják értelmesen feldolgozni, és itt már csak felesleges túlbonyolításnak érzem, egy nagy kapcsoló táblát létrehozni.
De te tudod. -
wolandino
tag
Sziasztok,
Egy kis gondban vagyok, mert adott egy alkalmazásom, amit bővíteni kellene.
Az alkalmazás tartalmaz egy űrlapot, ahol legördülők vannak, kb 10 db.
Mindegyik legördülő mögött egy tábla van: (név, id) párokkal lényegében.Eddig ezek egymástól függetlenül léteztek, de most úgy kellene bővíteni a funkcionalitást, hogy egy admin felületen lehetőséget adni az adminnak arra, hogy kiválasztott listák egyes értékeitől tegye függővé, hogy a másik legördülő mit jelenít meg.
Az adatkapcsolat így lehet sok-sok, egy-sok és sok-egy is.Arra gondoltam, hogy két táblára lenne szükségem
az egyik mondjuk table_connect(melyik_táblát, melyikkel)
a másik pedig a data_tree( melyik_tábla, melyik_adata_id, melyik_táblával, melyik_adatával_id)Az első tábla adná meg, hogy melyik táblától melyik tábla függjön, a második tábla pedig megadná, hogy az egyik tábla mely konkrét értékekeihez a másik tábla mely értékeit rendeljük.
Nem tudom mennyire érthető, de érdekelne pár tapasztalt adatbányász véleménye.
Köszönettel,
W. -
rum-cajsz
őstag
Nem írtad az adatbázist! Oracle-ben pl. az ALL_IND_COLUMNS nézetből lekérdezheted:
select
INDEX_NAME,
LPAD(TABLE_NAME,17) TABLE_NAME,
LPAD(COLUMN_NAME,15) COLUMN_NAME,
LPAD(COLUMN_POSITION,5) COLUMN_POSITION
from ALL_IND_COLUMNS
WHERE TABLE_NAME = upper('&tablename')
order by INDEX_NAME,COLUMN_POSITION; -
D@ni88
addikt
Egyszerű select-el meg lehet tudni, milyen indexen vannak egy táblára, esetleg mezőjére?
Sajnos van 2x indexet hoztak létre egy táblára, és jobb lenne biztosra menni, nem mindet végignézni...
-
D@ni88
addikt
válasz
martonx
#1028
üzenetére
Munkahelyi anyagot nem rakhatok netre

Érdekes, mint kiderült nem is a Select-ekben van a hiba. (~160 sort dolgoz fel a select)
Fájlba történő kiírásnál van a probléma. Néha 1 oerc, néha 3 óra. Pedig ugyan azzal a paraméterrel hívom meg... Ha SQL navigátor debuggerjével megyek át rajta akkor nincs gond... -
rum-cajsz
őstag
Oracleben van lehetőség a Materializált Nézetekre, amivel valóban lehet gyorsítani a selectedet, de ezt körültekintően érdemes használni.
De a legfőbb kérdés, hogy mire akarod használni az adott selectet. A hálózati forgalom pl. minimalizálható, ha nézetet használsz, ám ha ezt a lekérdezést egy sql*plusban adod ki, akkor nem lesz különbség a két (select contra view) között.
-
bpx
őstag
ha bekapcsolod, aprólékosan minden egyes aktivitást, várakozást feljegyez egy trace fájlba, amit később ki lehet értékelni
pl. tkprof-fal lehet ember által emészthető formára hozni, ahol lehet látni pl. minden egyes sql utasításra, hogy milyen tervvel futott, és a terv egyes lépései mennyi ideig tartottak#1026: a view nem más, mint egy elmentett lekérdezés aminek neve van, semmivel se gyorsabb se mysqlben, se Oracle-ben, csak kényelmesebb
-
D@ni88
addikt
Illetve olvastam olyat, hogy Mysql-ben gyorsítja a lekérdezéseket a View-k használata.
Ez igaz az Oracle-re is? -
-
D@ni88
addikt
Hello,
Adnátok pár tippet adni, hogyan lehet egy selectet gyorsítani?
hint-ekről esetleg magyar leírás? -
Lacces
őstag
-
martonx
veterán
Én valahogy idegenkedek a NoSQL-től. Jóllehet bizonyos esetekben kiválthatnak hagyományos funkciókat pl. cookie-kat, session-öket, illetve ezek közötti kommunikációt könnyű NoSQL-lel, szépen adminisztrálható, áttekinthető módon megoldani.
Jól jöhetnek akkor is, ha abszolút változó oszlopszámú rekordokat kell tárolni.
Illetve előnyük még, hogy a szöveg alapú keresésben hatékonyabbak (ez azért relatív), mint a hagyományos relációs adatbázisok.
Hátrányuk, hogy egy szépen felépített adatbázissal, ahol minden mindennel relációban van, egyszerűen nem vehetik fel a versenyt.
És itt jegyezném meg, hogy az ilyen "vannak oszlopok is, értékek, amelyek mindig tetszőleges számúak! Az egyik diagramnak 4 oszlopa van, míg a másiknak 8 oszlopa van." esetek meglátásom szerint túlnyomórészt adatbázis, program rendszer tervezési hibák miatt születő megoldások, ahol a tervezés butaságait a NoSQL sem fogja megoldani, maximum elfedi, sőt a kötetlensége miatt akár fel is erősítheti ezt a jelenséget.
A kétféle SQL használata abszolút nem zárja ki egymást, párhuzamosan is lehet használni őket.
-
Lacces
őstag
Sziasztok!
Találkoztam ezzel a mongoDB-vel csak a nevével, de ez most mégis micsoda? Adatbázis, én úgy olvastam, hogy valami dokument alapú adatbázis, de ez mit jelent? (wikipédiás magyarázatot sem értem így hirtelen)
Én nézegettem neten, és aztláttam, hogy Json alapú, OOP világába jobban illik bele.Igazából gyakorlban milyen ezt használni, jobb mintha a sima SQL-t használnám?
Például. Weboldalt akarok, ahol van blog, user kezelés, de szeretnék diagramokat is kezelni,
A diagramoknak vannak adatai, id, név, téma, stb. Visszont vannak oszlopok is, értékek, amelyek mindig tetszőleges számúak! Az egyik diagramnak 4 oszlopa van, még a másiknak 8 oszlopa van.
Ebben az esetben MongoDB vagy SQL-t érdemes használni? Indokot is kérnék ha szabad

Nekem még vadiúj ez a NoSQL világ -
ubid
senior tag
Akkor ez azt jelenti, mondjuk ha idegen kulcsal szeretnék mutatni egy másik táblában lévő COMPANY_NAME-re ami mondjuk nvarchar(MAX) akkor az általam készített táblába csinálok mondjuk egy FK_C_NAME -et ami szintén nvarchar akkor ez így megfelelő neki ?
-
ubid
senior tag
Helló!
MSSQL-be ( meg gondolom máshol is ) idegen kulcsnak uniqueidentifier-nek kell lennie, és csak a másik tábla ID-jához kapcsolódhat ami szintén uniqueidentifier ?
Vagy csak annyi a lényeg, hogy a két kulcs egyező típusú legyen ? ( mondjuk int - int )
-
Kommy
veterán
Sziasztok,
lehetséges olyat csináni, hogy egy lekérésből kizárni azokat a sorokat amelyekben az url mezo cikk/ -el kezdődik ( url kinézete: cikk/cikk_cime), ha ez lehetségea kkor hogyan
-
bpx
őstag
lehet, de ehhez nem kell újra feltalálni a kereket:
SQL> create table test1(name varchar2(10));
Table created.
SQL> insert into test1 values('Spongyabob');
1 row created.
SQL> insert into test1 values('Patrik');
1 row created.
SQL> insert into test1 values('Tunyacsáp');
1 row created.
SQL> commit;
Commit complete.
SQL> select listagg(name,',') within group (order by name) as nevek from test1;
NEVEK
------------------------------
Patrik,Spongyabob,TunyacsápEz mondjuk 11.2-es feature, ha ennél régebbi az Oracle, akkor google: oracle string aggregation
-
D@ni88
addikt
Még egy kérdésem lenne:
Meg lehet azt oldani, hogy ha egy function-t pl így hívok meg.termekek('select name from termekek');
Ennek a kimeneteként egy varchar típust szeretnék kapni, amiben vesszővel elválasztva szerepeljenek a termékek nevei.
-
D@ni88
addikt
Meg lehet úgy oldani PL/SQL-ben hogy több mezőt szeretnék kinyerni egy selectből
pl
select first_name into fname,
last_name into lname
from users.
Új hozzászólás Aktív témák
- Drága Bluetooth tagek olcsóbb alternatívái (MiLi MiTag, LiTag, OTAG, stb.)
- PROHARDVER! feedback: bugok, problémák, ötletek
- Székesfehérvár és környéke adok-veszek-beszélgetek
- OLED TV topic
- Youtube Android alkalmazás alternatívák reklámszűréssel / videók letöltése
- Linux Mint
- Android szakmai topik
- Ezt nézed TikTokon és YouTube-on a telefonodon
- gban: Ingyen kellene, de tegnapra
- Autós topik
- További aktív témák...
- 15.gen! Intel Core Ultra 9 285K +16-32GB DDR5 RAM +hűtött VRM-es Z890 lap! GAR/SZÁMLA (a Te nevedre)
- OP AudioCodes C450HD Ip Phones - Szines kijelzős - Teams/ Zoom telefon - Új dobozos
- ATEN Cat 5 KVM over IP Switch Altusen KH1508AI - Új ára 284.000Ft
- AirPort Extreme 802.11n (3rd Generation) Model A1301 -
- BLACKBOX ServeSwitch octet 724-746-5500 -
- Samsung Galaxy A23 5G 128GB, Kártyafüggetlen, 1 Év Garanciával
- REFURBISHED és ÚJ - HP USB-C Dock G5 (5TW10AA) - 3x4K felbontás
- ÁRGARANCIA!Épített KomPhone i7 14700KF 32/64GB RAM RTX 5070 Ti 16GB GAMER PC termékbeszámítással
- Eladó ÚJ Hoco HD Wi-Fi SIM Android A10 10.1"tablet / 24 hó jótállás
- ÚJ Lenovo ThinkPad X13 Gen 5 - 13.3" WUXGA IPS - Ultra 5 135U - 16GB - 512GB - Win11 - 2,5 év gari
Állásajánlatok
Cég: BroadBit Hungary Kft.
Város: Budakeszi
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest


![;]](http://cdn.rios.hu/dl/s/v1.gif)







