Add to Google Reader or Homepage Prihlásiť sa k odberu RSS

| Rubrika Php / mysql

Diskusia k článku

Zaradenie jednej položky do viacerých kategóriíZobraziť článok

masko
Dátum a čas 30. 10. 2008, 17:30 E-mail masek [a] altamira.sk

napriklad takto:

SELECT * FROM produkty WHERE category LIKE '%,23,%'

Ivo
Dátum a čas 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äť naspäť

Pridať komentár

Koľko je na ruke prstov?

Náhľad článku

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ť :).

RSS