Autor | Zpráva | ||
---|---|---|---|
unlucky Profil |
#1 · Zasláno: 19. 2. 2010, 22:46:08
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 |
#2 · Zasláno: 19. 2. 2010, 23:27:22
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 |
#3 · Zasláno: 19. 2. 2010, 23:29:35
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 |
#4 · Zasláno: 19. 2. 2010, 23:43:51
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 Je to jen nástřel, tak doufám, že tam není někde chyba. |
||
Časová prodleva: 14 let
|
0