Tudom-tudom, csak marha hosszú a táblák felépítése, aztán nem akartam egyből berakni ide annyi kódot. Most eszembe jutott még egy lehetőség, azt kipróbálom és ha nem jön össze berakom a dolgokat.
www.movat.hu - http://bit.ly/2mIziA4
Tudom-tudom, csak marha hosszú a táblák felépítése, aztán nem akartam egyből berakni ide annyi kódot. Most eszembe jutott még egy lehetőség, azt kipróbálom és ha nem jön össze berakom a dolgokat.
www.movat.hu - http://bit.ly/2mIziA4
Na a prog.hu-n leírtam már részletesebben, szóval inkább belinkelem azt, minthogy ide is bemásoljam az egészet: [link]
www.movat.hu - http://bit.ly/2mIziA4
hááát, ez meg így túl részletes. Azt hittem sikerülnöd fog kiemelni és konkretizálni a lényeget, de nem. Na nem baj, majd a prog.hu-s időmilliomosok hátha segítenek.
Viszont pár tanács:
Felesleges minden kapcsolótáblának id-t adnod primary key-ként. Ezzel rendesen keresztbe teszel az adatbáziskezelőnek, bár pár ezer adatsorokig nem fog feltűnni, hogy lassú lesz a lekérdezés.
Az evad_szeria-nak sincs semmi értelme. Adj a szeria tábládhoz egy év mezőt, és máris egyszerűsödött a képlet. A sokadik normálformákhoz ragaszkodni az iskolában lehet, a gyakorlatban pont a nálad látott szörny select-eket, és hosszas nyomozásokat okoz.
Aztán látatlanban összevonnám a pont_qual és a pont_race táblákat is. Jelezve, hogy az most verseny vagy csak kvalifikáció volt, és a megfelelő qual_id-t, vagy race_id-t hozzákötve.
És még lehetne sorolni a felesleges túlkapásokat. Azt javaslom első körben tedd rendbe a DB sémádat, és utána egy normális áttekinthető egyszerű sémát valószínűleg te is hibátlanul le fogsz tudni kérdezni.
Én kérek elnézést!
evad_szeria az a versenyző profiljánál kell, hogy melyik évben milyen szériákon indul milyen rajtszámmal, egy évben akár 5 verseny széria is lehet, aztán következő évben ez lehet több vagy kevesebb is, más rajtszámmal
pont_qual és pont_race táblákat más okból nem lehet összevonni, ennek más oka van ami ezeknél a tábláknál nem látszik, sokat gondolkoztam, hogyan legyen az adatbázis, amire kell ez a szerkezet tűnt a legésszerűbbnek
sajnos ennél egyszerűbb ez nem lehet, mert akkor csak egy-egy versenyszéria pontozására lenne alkalmas, akartam egy kicsit általánosabb sémát csinálni a problémára
jelenleg egyébként azzal oldom meg a problémát, hogy aki egy hétvégén kvalon vagy valamelyik versenyen részt vesz mindenképp be kell írni akkor már az eredményét (legyen akár 0 pont) és akkor jól számolja ki a pontokat, tudom mi a hiba egyébként, csak a megoldásra nem sikerül rájönnöm, az a baj, hogy a sok left join miatt egy-egy sor duplikálódik, van, hogy ugyanaz a sor szerepel 50x-60x és ezt summolja amit elosztok ezen sorok számával
www.movat.hu - http://bit.ly/2mIziA4
1. akkor a join-ba tegyél még bele feltételt. Ha többször talál össze két sor, az vagy a db sémád hibája, vagy a join feltétel túl megengedő. Vagy ne a táblát join-old oda, hanem egy megfelelően megszűrt alselect-et).
2. amit írsz az evad_szeria-ról az a linkelt adatok, és a józan paraszti ész szerint sem követelnek meg egy teljesen felesleges táblát.
A helyedben továbbra is erősen újragondolnám a db-met, mert az egyes pont hibája is, mint mondtam jó eséllyel ide vezethető vissza.
Én kérek elnézést!
Valami miatt nem tudok egy "indexelést" megoldani.
CONSTRAINT fk_hirdetes_id
FOREIGN KEY (hirdetes_id) REFERENCES tbl_hirdetes (id)
#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'CONSTRAINT fk_hirdetes_id FOREIGN KEY (hirdetes_id) REFERENCES tbl_hirdetes (id)' at line 1
A tbl_hirdetes_extra tábla kiválasztásánal csináltam ezt, az index az él, de ugye nekem a táblák összekötése lenne a fontos.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
Hátha ez segít:
Ebből kimásolva egy példa:
ALTER TABLE tbl_name
ADD [CONSTRAINT [symbol]] FOREIGN KEY
[index_name] (index_col_name, ...)
REFERENCES tbl_name (index_col_name,...)
[ON DELETE reference_option]
[ON UPDATE reference_option]
Én kérek elnézést!
Hmm...fura, hogy az alter nélkül nem ment. Pedig a tábla már ki volt választva.
Fotóim https://fb.com/toth.szabolcs.art || IG: http://instagram.com/_tothszabolcs_ || Weblapom http://szabolcs-toth.com
Lenne egy láma kérdésem:
Írok egy kis programot, ami az adatokat egy mySQL táblába exportálja, illetve onnan tölti be.
Maga a feladat egy gyakornoki állás jelentkezéséhez kellene, így a programmal együtt el kellene küldenem az adatbázist is.
Az adatbázis mentése sikerült egy .sql fájlba, de nem tudom, hogy hogyan is lehetne betölteni a Workbenchbe.
Tudtok segíteni?
[ Szerkesztve ]
"Az adatbázis mentése sikerült egy .sql fájlba, de nem tudom, hogy hogyan is lehetne betölteni a Workbenchbe."
Nem az adatbázisba szeretnéd "betölteni" a dumpfájlt?
Vagy mi a célod?
Pl. ez működik dumpfájl készítésére, majd az SQL-fájlból másik adatbázisba való betöltésre, konzolból:
C:\Users\Peter>mysqldump -u root -p1234 test > test_db_dump.sql
C:\Users\Peter>mysql -u root -p1234 another_test_db < test_db_dump.sql
Sk8erPeter
De ezt szeretném, köszönöm a segítséget .
Szívesen!
Sk8erPeter
Üdv mindenkinek.
Egy számomra összetett kéréssel fordulnék a szakértőkhöz.
Egy spéci program kiszolgálásához szeretném telepíteni a mysql-t.
Van egy angol nyelvű pdf dokumentumom,ami leírja a telepítés,illetve a konfigurálás menetét,de ez a téma nekem már nem angol,hanem kínai.
Ha esetleg valaki érthetően,szájbarágósan el tudná magyarázni a doksi alapján a teendőket,az igen nagy segítség lenne nekem.
Előre is köszönöm a segítséget.
ui: a doksit természetesen el tudom küldeni
Sziasztok,
Nem igazán értem egyelőre, hogy user-user közti kapcsolatot hogyan tudnék létrehozni. A userhez gyönyörűen hozzá tudom kapcsolni a saját filejait és a fileokhoz tartozó további fileokat, viszont a user-user kapcsolatra nem tudok őszintén okosat mondani . Tehát hogyan jelöljem ha valaki kapcsolatban van valakivel?Látja az általa tárolt fileokat. Plusz egy sorral a user táblába?
Plusz egy Friendship (2 oszloppal, egyik user másik user) tábla, ami N .. N kapcsolatot jelent, a többit meg majd eldöntöd utána.
Köszi a választ, de nem igazán értem meg mondom őszintén . Ha egyik user másik user akkor nem csak 1 kapcsolat lehet? Mi van ha van az egyik usernek 100 kapcsolata?
Összetett kulcs esetén nem. Esetleg alkalmazol egy PK oszlopot is és az id1, id2 oszlopokat simán UNIQUE-ra rakod.
PRIMARY(id1, id2)/ kulcs esetén lehet 100 kapcsolat is.
Arra kell figyelni, bár ez függ attól, hogy logikailag hogyan kezeled, hogy az (1,2) és (2,1) relációk szükségesek-e számodra vagy sem.
Ha csak a kapcsolat megléte számít az iránya nem, akkor ne engedd az ilyet, ha számít, akkor szerepeltetned kell mindkét "kapcsolatleírást" a friendship tábládban.
[ Szerkesztve ]
- http://pazsitz.hu -
Sziasztok,
Van egy products és egy products description táblám.
Itt van a products_id, products_model, products_price mezők
A products description táblában vannak a products_id, language_id és a products_name,
vagyis ugyanaz a termék más nyelven egy új rekord ebben a táblában.
Úgy kellene ezeket lekérdeznem, hogy a products_id, products_model, products_price és a 3 nyelven a megnevezés a language_id alapján (1,4,5) egymás mellé kerüljenek.
Hogy lehet ezt megoldani?
https://toptarget.hu - Online Marketing Ügynökség
Hali!
Szerintem legegyszerűbb megoldás INNER JOIN-olni újból ugyanazzal a táblával, az alábbi lekérdezést teszteltem is, nálam 0.0015 másodperc alatt lefutott:
SELECT
pr.`products_id`, pr.`products_model`, pr.`products_price`,
pdesc_1.`products_name`, pdesc_4.`products_name`, pdesc_5.`products_name`
FROM
`products` AS pr
INNER JOIN
`products_description` AS pdesc_1
ON pr.`products_id` = pdesc_1.`products_id`
AND pdesc_1.`language_id` = 1
INNER JOIN
`products_description` AS pdesc_4
ON pr.`products_id` = pdesc_4.`products_id`
AND pdesc_4.`language_id` = 4
INNER JOIN
`products_description` AS pdesc_5
ON pr.`products_id` = pdesc_5.`products_id`
AND pdesc_5.`language_id` = 5
Itt a táblák neveit a JOIN-nál direkt úgy neveztem el, hogy beszédes legyen, tehát ha pl. a 4-es language id-vel JOIN-oltam, akkor pdesc_4 lett a JOIN-olt tábla neve.
Remélem erre gondoltál.
Sk8erPeter
Elsőre ez ugrik be:
SELECT products_id, products_model, products_price, pd1.products_name, pd2.products_name, pd3.products_name
FROM products
LEFT JOIN products_description pd1 ON pd1.product_id = products.product_id AND language_id = 1
LEFT JOIN products_description pd2 ON pd2.product_id = products.product_id AND language_id = 2
LEFT JOIN products_description pd3 ON pd3.product_id = products.product_id AND language_id = 3;
De biztos van szebb megoldás is, mondjuk PROCEDURE-t használva.
mod: Lemaradtam.
[ Szerkesztve ]
- http://pazsitz.hu -
Szia,
Tökéletes!
Nálam az élő szerveren 0,0021 alatt futott le ami szuper
Köszi!
https://toptarget.hu - Online Marketing Ügynökség
Szívesen, örülök, hogy segítettem.
Amúgy még annyi kimaradt, hogy a SELECT melletti felsorolásnál persze ne felejts el majd egyedi nevet adni a `products_name` mezőknek, hogy egyértelműen le tudd majd kérdezni mondjuk PHP-vel. (csak példa: pdesc_4.`products_name` AS products_name_4)
======
(#771) PazsitZ :
nekem most nem jut eszembe jobb/gyorsabb megoldás tárolt eljárással sem.
Mire gondolsz?
[ Szerkesztve ]
Sk8erPeter
Szia,
Köszi a segítséget. A kapcsolat két féle kell ,hogy legyen, vagyis inkább ugy mondom két fajta kapcsolatra van igény . 1. Mikor a user a másik usertől egyoldalúan kapja a contentot, 2. mikor a user szimplán kapcsolatban van és igény szerint látja/hozzáfér az általa megosztott fileokhoz .
Összetett kulcs esetén nem. Esetleg alkalmazol egy PK oszlopot is és az id1, id2 oszlopokat simán UNIQUE-ra rakod.
Ezt értem, meg is tudom csinalni .
PRIMARY(id1, id2)/ kulcs esetén lehet 100 kapcsolat is
Ezt viszont nem tudom elképzelni, hogy miként működne.
Na, leesett , hogy miről beszélsz, nem is értem miért nem értettem .
Gondoltam két dologra, az egyik ,hogy csinálok egy friendship táblát, lesz benne egy id oszlop, ami PK, a következő egy users_id lenne, ami nyilván minden usernek egyedi, és lenne két oszlop még az egyik az egyoldalu kapcsolatos userek id-ját tárolná a másik meg a kétoldalut . Ezzel csak az a gondom, hogy nem tudom hogyan kéne berakosgatni az id-kat egymás mögé, meg ha van mondjuk 50.000 id, és valakinek az utolsó 1000 benne van a táblájában, nem okoz gondot, hogy csak az id-k 5000 karaktert kitesznek az egyik kapcsolatnál?
A másik amire gondoltam, hogy a usernek adok egy 2. id-t (amit te is írtál) , majd teszek még ugyanúgy két oszlopot a userhez és innentől ugyanaz a probléma mint az előzőnél .
Valaki kapcsolja fel a villanyt
A tába így néz ki:
users:
id name
1 Soak
2 PazsitZ
3 xy
relation (id elhagyható, akkor a elsődleges kulcs: (user, friend), egyéb esetben csak unique key):
id user friend
1 1 2
2 1 3
kérdés ezzel magvan a kapcsolat vagy kellenek továbnbi mezők, nálad ezek szerint számít az irány tehát kell:
3 2 3
Ekkor mi kölcsönösen haverok vagyunk id:1. relation soka haverja PazsitZ-nek
id:3 PazsitZ haverja Soaknak
id:2 itt csak Soak haverja xy-nak, de xy-n nem haverja Soaknak.
Amit írsz, hogy text/blob-ban tárolni egy user kapcsolatát, nem működőképes, nem tudsz kapcsolatot felállítani join-al, nehezen kezelhető...
- http://pazsitz.hu -
Köszönöm , végülis tök egyértelmű . Rá kell még állnia az agyamnak a programozói gondolkodás módra, nem kell mindent túlbonyolítani.
Sziasztok. Nem tudok weboldallal connectelni a VPS-en lévő SQL szerverre.
Megnéztem, alap portot használ, tűzfalban engedélyeztem (1433 UDP).
Valamiért még sem jó.
Ötlet?
php-ban így adtam meg az elérést:
xxx.xx.xxx.xxx,1433
[ Szerkesztve ]
IP-nél a portot nem :-tal kell megadni? XXX.XXX.XXX.XXX:1433
Másrészt a mysql default-ban tiltja a localhoston kívül mindennemű kapcsolatot. Ha nem saját gépről akarod hívogatni, akkor ehhez egy picit paraméterezned kell a mysql-t.
Én kérek elnézést!
Amit ki tudtam olvasni fórumokból, az alapján vesszővel kell, de kettősponttal sem volt jó.
Paraméterezés alatt mit értesz pontosan?
Szolgáltatónál faq-ban egyéb helyen nincs ehhez kapcsolódó leírás?
Egyébként én a 127.0.0.1:1433 és localhost:1433 verziőkat is kipróbálnám, ha még nem tetted.
- http://pazsitz.hu -
Kicsit hülyén fogalmaztam. Webszerverről akarok kapcsolatot létesíteni a VPS-en lévő MS SQL kiszolgálóval. A webszerveren lévő SQL pedig nem használható (ki is van kapcsolva), mert a VPS-en lévőre lenne szükségem.
Valszeg beszélek valakivel a hostingnál, bár nem fűzök hozzá túl sok reményt...
Akkor most MS SQL? Mert annak nem 1433 a portja...
A hoszting cégek eléggé segítőkészek szoktak lenni, feltéve, hogy nem egy havi 200 Ft-os, vagy ingyenes csomagról van szó.
Ilyen pusztán technikai kérdésekben egy fórumban nem fogunk tudni segíteni, pláne, ha nem voltál rest és előtte utána jártál a témának. Azon őszintén meglepődnék, ha a vesszővel beírt portszám működne, bár ki tudja nem vagyok nagy PHP szaktekintély.
Én kérek elnézést!
MS fórumon olvastam a vesszős dologról, én is furcsállottam, de kettősponttal sem ment.
Mindegy, szóltam a tulajnak, hogy intézze a hostingossal, ha már 30k-t fizetett első hónapra.
"MS fórumon" - akkor te most tényleg nem MySQL-ről beszélsz? Havi 30K-s hoszting díjjal rendesen átvágtak titeket. Még ha MS vonal, nem pedig Linux, akkor is irreálisan drága ennyiért.
Én kérek elnézést!
hello
Tud valaki olyan ingyenes mysql szervert, ami vagy több felhasználónevet és jelszót támogat, beállítható jogosultságokkal, és titkosított kapcsolatot támogat(legalább a jelszó és felhasználónév átvitelére)?
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
minden mysql szerver ingyenes
Tegyél fel egyet magadhoz és úgy konfigurálod, ahogy akarod.
Vagy futtass egyet a felhőben (Amazon WS, Azure), ezeket is úgy konfigurálod, ahogy akarod, bár a felhő nem ingyenes, csak a trial időszakban.
Én kérek elnézést!
Sziasztok!
Hogy tudok where esetén egy mezőre olyan módon keresni, hogy regexpet alkalmazhatok közben rá.
Pl van egy telefon oszlopom, melyben pl van egy ilyen érték: 70/123-4567
Akkor ezt kiadja 1234 -re keresve is.
SELECT
*
FROM
teszt
WHERE
replace( replace( replace( replace( replace( tel1, ' ', '' ) , '(', '' ) , ')', '' ) , '-', '' ) , '/', '' )
LIKE '%1234%';
Ennél a replacelésnél kicsit igényesebb kódot szeretnék
[ Szerkesztve ]
nemmondod hogy a mysql ingyenes
Jelenleg nincs olyan csöndes és kis fogyasztású gépem ami 24/7-ben mehetne szerverként, úgyhogy ezért kéne ingyenes szerver. Nem trial.
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
nincs ennél jobb kód
Én kérek elnézést!
ember, miért nem lehet értelmesen fogalmazni? Te egy ingyenes hosting szolgáltatást szeretnél mysql-el. Nos a jó hír, hogy ilyenekkel tele van az internet.
A rossz hír, hogy ha csak és kizárólag a mysql-t akarod használni, akkor azt csak localhost-ból engedélyezik.
Ha tényleg csak MySQL kell, akkor továbbra is azt mondom, hogy felhőből futtasd. Amazon RDS-re vethetnél egy pillantást. Ugyan nem sikerült a kalkulátorukat működésre bírnom (vagy tényleg ingyenes lenne, bármilyen extrém terhelés esetén is?), de szvsz nagyon pici pénzért lehet mysql-t felhőben hosztingolni.
Én kérek elnézést!
találtam egy ilyen csodát: UDF Repository: preg_replace function [link]
Szóval így megtudnám kb így:
WHERE PREG_REPLACE('/[^0-9]/',"",'phone_number') LIKE '%1234%';
Ami baromi jó lenne, ha saját szerver lenne, és tudnék telepíteni ilyet :S
szerk.:
Bár ha nagyon unatkozom, lehet átalakítom a táblát kb ilyenre:
phone_country
phone_area
phone_number
aztan csak CONCAT()-al összefűzöm, és abban már megy a LIKE....
[ Szerkesztve ]
vagy nem mysql, hanem front-end szinten eleve kiszeded a felesleges karaktereket. Elvégre azokat minek tárolni?
Én kérek elnézést!
Erre gondoltam én is, de abból indulok ki, hogy az ügyfél hülye.
Szóval képes beírni ilyen számokat:
70/1234-456
3630/123-456
123-456
+1120-123-456
Szóval így nem nagyon tudom, melyiket szánta körzetnek, és melyik a telefonszámnak, vagy épp írt-e elé még országot is. Szóval gondoltam rá, h. tárolásnál csak strippelem, és a számokat hagyom meg, szóval a fentiből lesz:
701234456
3630123456
123456
1120123456
De ebből nem fogom tudni, hogy melyiket hogy írta, ezért ha már ezt választom, akkor kénytelen vagyok a telefon oszlopot három felé bontani. (ami mellesleg rögtön 9 lesz, mivel egy rekordhoz 3 szám is tartozhat)
[ Szerkesztve ]
Az ügyfél hülye ez alap, de vannak jó felületi megoldások a hülyék segítésére anélkül, hogy teleszemetelnénk a db-t. De ez már nem ennek a topiknak a témája.
Én kérek elnézést!
értelmesen fogalmaztam, nyilvánvaló hogy nem egy telepíthető sql szerverprogramot keresek, mert azt nem kell keresni. Amazon RDS nem ingyenes, de regisztrálni sem lehet, mert szokásos amcsi cég módjára alapnak veszik a retkes dombornyomott bankkártyát, ami kell a regisztrációhoz, és nekem nincs.
Troll (nemhivatalos definíció): az akinek véleménye nem tetszik nekünk/nem értünk vele egyet. (10-ből 9 fanboy ezt ajánlja) || Fanboy 8 in 1 (Intel, AMD, Nvidia, konzol, PC,+minden politikai oldal) hiszen "ahol nem mi vagyunk, ott az ellenség"
Üdv mindenkinek.
Ismét felteszem a kérdésem,hátha valaki segítene nekem
Egy számomra összetett kéréssel fordulnék a szakértőkhöz.
Egy spéci program kiszolgálásához szeretném telepíteni a mysql-t.
Van egy angol nyelvű pdf dokumentumom,ami leírja a telepítés,illetve a konfigurálás menetét,de ez a téma nekem már nem angol,hanem kínai.
Ha esetleg valaki érthetően,szájbarágósan el tudná magyarázni a doksi alapján a teendőket,vagy esetleg megcsinálná a gépemen a telepítést,és a konfigurálást,az igen nagy segítség lenne nekem.
Előre is köszönöm a segítséget.
ui: a doksit természetesen el tudom küldeni
Erre igazából csak az utolsó mondatot tudnám mondani ebből a hsz-ből [link] , ha van konkrét kérdésed biztos fogsz kapni segítséget, de ingyen nem fog senki dolgozni.
Természetesen nem gondoltam szívességből a dolgot.
Hozzáteszem,nálunk a rendszergazdán kifogott a dolog,ezért fordultam itt igazi szakemberekhez.
Kódolásról pedig szó sincs,ha jól értelmezem a dolgot,csak telepíteni kell,illetve beállítani a szervert a programhoz.