Autor Zpráva
pokker
Profil *
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
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 *
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
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 *
pisem kraviny ...
pokker
Profil *
Akacko jasně ze budu ukladat id a ne jmena ") ja jenom jsti ste se s tim někto nesetkal "))
Akacko
Profil
pokker
setkal, řešení jsem napsal nahoře
pokker
Profil *
ok ja to teda susím , asi si mrknu reference k MySql trochu ji chuderku vytezím ")) zatim dik
bukaj
Profil
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 *
bukaj povodna otazka bola otazkou optymalizace nevim co s tim ma spolocna relace tabulek ... ??
Akacko
Profil
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 *
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
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
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 *
dik bukaj ja sa nerozculujem pital som sa skusenejsich ako by to riesili , takze dik za odpoved ")

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: