Autor | Zpráva | ||
---|---|---|---|
pokker Profil * |
#1 · Zasláno: 12. 4. 2008, 11:15:51
Ahoj luddkovia mám cisto teoretickú otázku
Mám fórum teda prihlasovanie uzivatela atd az po fórum potrebujem spravit pre kazdého uzivatela zoznam jeho priatelov , niesom expert v matike , ale ak by som to ukladal do tabulky ..... dajme tomu ze mám len 100 uzivatelov ktorý sa poznajú tj 10000 záznamov ... hmm ???? zo 100 menami ktoré sa opakujú , to je dost nepraktické , premýslam este ze by som do uzivatelovho profilu dopnil tabulku a do nej CHAR alebo text pouzil ako pole .... co si o tom myslíte ??? Dik . |
||
WertriK Profil |
#2 · Zasláno: 12. 4. 2008, 11:23:28
premýslam este ze by som do uzivatelovho profilu dopnil tabulku a do nej CHAR alebo text pouzil ako pole .... co si o tom myslíte ???
Že tohle je dosti nepraktické - zkoušel jsi se zamyslet jak by se s tím pracovalo ? Třeba když si někdo bude chtít někoho z přátel vymazat ... |
||
pokker Profil * |
#3 · Zasláno: 12. 4. 2008, 11:26:06
právě a generovat tabulku pro kazdého uzivatele ... "(( ohledne toho odstranení nejsem si jistej ale existuje něco jako putchar() ci tak nějak ....
|
||
Akacko Profil |
#4 · Zasláno: 12. 4. 2008, 11:27:20
pokker
udělej to takto... Vytvoř ještě jednu tabulku např. pratele, ve ktere budou 2 sloupce - id uzivatele a id pritele ... a s každym novým přítelem tam přidaš řádek. a myslim, že pro databázi takovato tabulka nebude vůbec problém i se 100k záznamy |
||
pokker Profil * |
#5 · Zasláno: 12. 4. 2008, 11:28:20
pisem kraviny ...
|
||
pokker Profil * |
#6 · Zasláno: 12. 4. 2008, 11:30:45
Akacko jasně ze budu ukladat id a ne jmena ") ja jenom jsti ste se s tim někto nesetkal "))
|
||
Akacko Profil |
#7 · Zasláno: 12. 4. 2008, 11:32:16 · Upravil/a: Akacko
pokker
setkal, řešení jsem napsal nahoře |
||
pokker Profil * |
#8 · Zasláno: 12. 4. 2008, 11:49:04
ok ja to teda susím , asi si mrknu reference k MySql trochu ji chuderku vytezím ")) zatim dik
|
||
bukaj Profil |
#9 · Zasláno: 12. 4. 2008, 12:46:48
pokker
trochu ji chuderku vytezím Databáze jsou koncipované tak, aby držely velké množství objemných dat a aby se s daty dalo rychle pracovat. Tvých nějakých 10000 bude prakticky prd ;) Doporučuji si pročíst články o, jelikož pracuješ s MySQL, relačních databázích. Hlavně tedy o relacích mezi tabulkami (1:N, N:N). Např. v seriálu MySQL na linuxsoftu můžeš něco najít. |
||
pokker Profil * |
#10 · Zasláno: 12. 4. 2008, 15:04:32
bukaj povodna otazka bola otazkou optymalizace nevim co s tim ma spolocna relace tabulek ... ??
|
||
Akacko Profil |
#11 · Zasláno: 12. 4. 2008, 15:29:29
pokker
bukaj povodna otazka bola otazkou optymalizace nevim co s tim ma spolocna relace tabulek ... ?? že by uplně všechno? Pravě kdybys znál jak se řeší tyto relace tak nemáš důvod zakládat topic na fóru! |
||
pokker Profil * |
#12 · Zasláno: 12. 4. 2008, 15:34:33
tak jinak na to aby som vytvoril zoznam priatelov momentalne potrabujem 1 tabulku ( zbatocne objemnu naviac ) relace 1:1 voci tabulke usera ...?? pital som sa na ine riesenia bez pouzitia tabulky pre zoznam priatelov navyse priatelia spadaju pod urcitu skupinu v uzivatelovom profile ....
|
||
Akacko Profil |
#13 · Zasláno: 12. 4. 2008, 15:51:21
pokker
No já se ti marně snažim vysvětlit, že dělat to pomoci jedne tabulky je blbost. Nikdo, kdo tomu rozumí by to tak nedělal. A jinak není problém do tabulky s přáteli přidát sloupec se skupinami pod které spádají přátelé. Ale pokud už to chceš řešit blbě, tak to aspoň řeš pomocí funkcí implode a explode |
||
bukaj Profil |
#14 · Zasláno: 12. 4. 2008, 16:44:04
pokker
Nerozčiluj se hlavně. Já bych ve svých začátcích byl velice rád, kdyby mi někdo poradil, jak věci dělat správně. O kolik by pak mé kódy byly jednodušší a hezčí. No, naštěstí jsem se z chyb poučil. Stejně tak se, doufám, poučíš i ty. co s tim ma spolocna relace tabulek ... ?? Jak již napsal Akacko, všechno. Proč by se jinak těm databázm říkalo ralační, že? zbatocne objemnu naviac Ono ve výsledku může použití další tabulky naopak místo ušetřit ;) Když si to vezmeš, tak v relaci budeš používat nějaké číselné hodnoty (int), které skladují číselná data daleko úsporněji než řetězce. Navíc u řetězce jsi omezen jeho délkou, u tabulky jen velikostí disku. Ale největší výhodou je právě rychlost, jakou databáze dokáže se záznamy a jejich propojováním pracovat. Musíš také brát v úvahu, že zpracování každého jednoho dotazu stojí čas. Pokud bys "přátelení" mezi uživateli řešil pomocí dalšího sloupce v tabulce a chtěl bys, kupř., vypsat jméno každého uživatele se jmény jeho přátel (oddělenými čárkou), máš dvě možnosti: 1) jedním dotazem si z databáze vytáhnout celý obsah tabulky a následně to zpracovat, ale nebudeš mít ani 1000 záznamů a už ti nemusí stačit pamět. 2) vytáhneš si jména uživatelů a ID jejich přátel (což máš v textovém sloupci) a postupně budeš u každého uživatele rozparovávat to pole a následně tahat z databáze jména přátel. První řešení je nepoužitelné při větším objemu dat, druhé je zase neskutečně pomalé. Zatímco při použití další tabulky to dokážeš jedním jediným dotazem. A potom už akorát v cyklu vypisuješ, přesně co jsi chtěl získat. |
||
pokker Profil * |
#15 · Zasláno: 12. 4. 2008, 18:25:49
dik bukaj ja sa nerozculujem pital som sa skusenejsich ako by to riesili , takze dik za odpoved ")
|
||
Časová prodleva: 16 let
|
0