Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
Autor | Správa |
---|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
Ahoj,
chcel by som sa spytat, ako sa riesi nasledujuci problem:
Ked mozem nejaky produkt vlozit do viacerych kategorii (napr. nove,najlepsie,najhranejsie,najstahovanejsie...) ako to riesit v databaze?
napr. produkt Batterfield 2 - najlepsie,nove,najstahovanejsie
Potom chcem vypisat vsetky produkty (aby sa neopakovali), a produkty z 1 kategorie (napr. nove)
Dam na kazdu kategoriu novy stlpec, alebo kazda kategoria = 1 tabulka? Ako vy riesite podobny problem?
Dakujem
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
asi by bolo najlepsie, keby si produkty do kategorii typu naj* priamo nepriradoval, ale len generoval podla datumu, poctu stiahnuti, poctu prezreti a pod...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
ja som si kategore vymyslel, potrebujem to pre svoj znamkovy klub, na tomto sa mi to lepsie vysvetluje. Kategorie su vymyslene. Nestretol si sa s niecim podobnym este?
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
osobne by som to spravil asi tak, ze v jednej tabulke by boli kategorie, v druhej produkty a v tretej by boli produkty priradene k jednotlivym kategoriam... ked bude nejaky produkt patrit do viacerych kategorii a nechces, aby sa v nejakom vypise opakoval viackrat, tak to jednoducho odfiltrujes (pripadne zobrazis, do akych kategorii je zaradeny)...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
ako na to filtrovanie?
napadlo ma este spravit to tak, ze by kategoria bol varchar, s ciselnym kodom pozostavajucim z 1 a 0, pri com kazdy znak v poradi by znamenal kategoriu (0-nepatri,1-patri).
napr
pozicia (vyznam)
0(najnovsie)
1 (najlepsie)
2 (ina kategoria)
v DB:
010 (najlepsie)
110 (najnovsie a aj najlepsie)
... ale zostrojit na toto sql prikaz asi nebude take jednoduche. pozna sql vobec array?
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
filtrovanie si mozes spravit ako len chces, napr. vyberies prvu kategoriu, v ktorej sa produkt nachadza, alebo vyber budes robit nahodne - ak produkt patri do 3 kategorii, na webe zobrazis bud prvu, druhu alebo tretiu...
co znamena ta 2 (ina kategoria)? ako urcis, ktora to je presne? podla mna to nie je najstastnejsie riesenie...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
to ina kategoria som myslel nejaku inu kategoriu, nenapadol ma nazov. Moze to byt napr. strategicke, ked som zacal s hrami.
diky
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
nj, ale budes musiet tie jednotlive hodnoty nejak oddelit, lebo ked bude produkt patrit do viacerych kategorii, ako rozpoznas, ktora cifra urcuje kategoriu? lebo co ak budes mat viac ako 9 kategorii? cize napr. 0#0#12#2 - hra by patrila do kategorii s id 12 a 2 (napr), ale ako som uz povedal, takto by sa s tym velmi zle pracovalo...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 01.01.06 Prihlásený: 25.12.21 Príspevky: 366 Témy: 47 | 47 Bydlisko: TT |
jj, mas pravdu. Diky za tvoje riesenie, asi pouzijem to.
_________________ He who laughs last has not yet heard the bad news.
-- Bertolt Brecht
medicine student |
|
Registrovaný: 21.01.07 Prihlásený: 29.03.20 Príspevky: 660 Témy: 53 | 53 |
Nebolo by jednoduchšie uložiť ku produktu kategórie v takomto tvare?
;5;12; (napr.) - produkt patrí iba do kategórii s ID 5 a 12
Pri vyberaní by bol príkaz nasledovný.
Kód: SELECT * FROM produkty WHERE kategorie LIKE '%;5;%' Ak by si chcel súčasne vybrať aj názov kategórie (z nejakej inej tabulky): Kód: SELECT * FROM produkty AS p, kategorie AS k WHERE p.kategorie LIKE '%;5;%' AND k.id_kategorie=5
|
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
aj tak sa da a asi je to aj lepsie riesenie len to ma par nevyhod do buducnosti - napr. ked bude chciet nejaky produkt automaticky premiestnit z jednej kategorie do druhej... ale nie je to az tak zavazny problem...
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
V skutočnosti sa to robí trochu inak. Dá sa to na internete nájsť ako problém väzby N:M alebo, ako je spomenuté vo frameworku cakePHP, hasAndBelognsToMany.
Frk je v tom, že:
- máš tabuľku, nazvime ju produkty, má primárny kľúč id
- druhá tabuľka, kategorie, má tiež primárny kľúč id
- spravíš tretiu tabuľku, nazveš ju napr. kategorie_produkty a má len 2 stĺpce: kategorie_id a produkty_id
- keď priradíš nejakému produktu nejakú kategóriu, uložíš do nového riadku v tretej tabuľke príslušné id kategórie a produktu
- keď hľadáš, do ktorých kategórii spadá nejaký produkt, len vyhľadávaš všetky riadky, ktoré majú nejaké určité produkty_id a pri hľadaní kategórii naopak
Prikladám aj obrázok ( z tejto stránky o cakePHP). Všimni si tabuľky articles a tags a medzi nimi articles_tags.
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Registrovaný: 27.07.07 Príspevky: 3948 Témy: 51 | 51 Bydlisko: Bratislava |
cize v podstate to, com som navrhoval ja
_________________ NTB: Acer Aspire 4820TG 14" | CPU: Intel Core i5 2,53 GHz | VGA: ATI Mobility Radeon HD5650 1GB | RAM: 8GB DDR3 1066 MHz | HDD: 1TB SSD WD BLUE |
|
Registrovaný: 30.05.06 Prihlásený: 08.10.14 Príspevky: 1756 Témy: 35 | 35 Bydlisko: BA - WESTSIDE |
Áno, chcel som odkloniť jajiho a pepeka od ich vlastných "riešení".
_________________
A. S. Tanenbaum píše: The terms LF, MF, and HF refer to low, medium, and high frequency, respectively. Clearly, when the names were assigned, nobody expected to go above 10 MHz, so the higher bands were later named the Very, Ultra, Super, Extremely, and Tremendously High Frequency bands. Beyond that there are no names, but Incredibly, Astonishingly, and Prodigiously high frequency (IHF, AHF, and PHF) would sound nice. |
|
Stránka: 1 z 1
| [ Príspevkov: 14 ] | |
|