Autor Zpráva
unlucky
Profil
chtěl bych se zeptat zkušenějších:

mám v tabulce články v něm sloupec kateogrie.
Kategorie mám odděleny čárkama (101,106 atd...)

jak vybrat "podobné" články v tomto případě?

vybrat si první kategorii a podle toho zobrazit?
Joker
Profil
unlucky:
Kategorie mám odděleny čárkama (101,106 atd...)
No, tak už tady je nejspíš chyba.
Znamená to, že pro nějaký záznam sloupec "kategorie" může obsahovat více hodnot, čili tabulka není vůbec normalizovaná?
(1. normální forma, zjednodušeně: Údaj uložený v každém "políčku" tabulky musí být atomický, tzn. nesmí být složený z jiných "dílčích" údajů.
Jakákoliv vyšší normální forma musí splňovat pravidla pro všechny nižší normální formy)

jak vybrat "podobné" články v tomto případě?
Co znamená "podobné"?
Jestli "které mají alespoň jednu kategorii stejnou", tak se právě ukazuje problém způsobený špatným návrhem tabulky.
unlucky
Profil
nebo spise takhle:
kdybych chtěl mít více kategorií a nějakým vhodným způsobem pak zobrazit "podobné" články. Jaký způsob je nejlepší?
Joker
Profil
unlucky:
kdybych chtěl mít více kategorií
Tabulka článků, tabulka kategorií a tabulka kategorií článků, která by obsahovala ID článku a ID kategorie.

No a pokud "podobné články" znamená články s alespoň jednou stejnou kategorií, tak:
SELECT id_clanku, COUNT(id_kategorie) AS pocet FROM kategorie_clanku WHERE id_kategorie IN (jaké kategorie má daný článek) GROUP BY id_clanku ORDER BY pocet DESC
...takhle by to bylo i seřazené podle "podobnosti", tj. od těch, které mají nejvíce společných kategorií s daným článkem.

Je to jen nástřel, tak doufám, že tam není někde chyba.

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: