| Rubrika Php / mysql
Diskusia k článku
Zaradenie jednej položky do viacerých kategórií
masko
30. 10. 2008, 17:30
masek [a] altamira.sk
napriklad takto:
SELECT * FROM produkty WHERE category LIKE '%,23,%'
Ivo
30. 10. 2008, 16:23
A jak zajistíš, aby se daný produkt vybral, pokud například budeme v kategorii např. 23 a u zboží budeš mít uloženo kategorie: 11, 14, 23, 26?
Jak bude vypadat sql dotaz?
naspäť
Pridať komentár
Zaradenie jednej položky do viacerých kategórií
Dávnejšie som riešil problém ako pripraviť databázový model pre web, ktorý umožňuje vkladať do databázy produkty a zaradiť ich do ľubovoľného množstva produktových kategórií. Relačná tabuľka v takomto štýle je samozrejme jedným z riešení.
| id_kategorie | id_produktu |
Čiže produkt by bol najskôr vložený do svojej tabuľky s ostatnými produktami. A väzba na rôzne produktové kategórie by bola uložená v relačnej tabuľke. To je asi najčistejšie riešenie. Chcelo sa mi však znížiť počet tabuliek, tak som skúsil riešenie, tzv. „prasácke“. A to znamená väzby na produktové kategórie uložiť v podobe reťazca – v štýle „,15,20,30,45,85,“ do hlavnej tabuľky s produktami. V zásade je to riešenie funkčné a jednoduché, vyhľadávanie v reťazci je bezproblémové, i keď rozhodne pomalšie ako by to bolo v prípade integeru.
Pokiaľ potrebujem dostať ID kategórií do nejakého spracovateľného formátu, používam funkciu explode:
explode(',',$row['kategoria']);
Toto riešenie by však rozhodne nikto nemal použiť :).

