Re: dotaz v mysql

From: Kit (vpospichal@tiscali.cz)
Date: 25. 07. 2003, 12:46 CEST


On Fri, Jul 25, 2003 at 12:06:49 +0200, Petr Pokorny wrote:
> Ing. Zdenek Sofr <administrator@plastkov.cz>:
> > Otazka ale je, co si vlastne tazatel presne preje...
> Ja zadani pochopil takhle:
> id_kategorie | id_clanku
> 1 | 108 
> 5 | 108
> 1 | 109
> 3 | 110
> 5 | 110
> 3 | 111
> dotaz 1:  clanky z kategorie 3
> vysledek: 110, 111
> dotaz 2:  clanky z kategorie 1 a 5
> vysledek: 108, 109, 110
> Reseni neznam, respektive nechce se mi premyslet ;o).
> -pp21-

Myslím, že jsi to pochopil chybně, výsledek by měl být podle mne pouze
108, protože článek 108 jako jediný spadá do obou kategorií.

Viděl bych řešení přes pomocnou tabulku, kde id_clanku bude klíčem a
id_kategorie bude množina kategorií. Pak už jen vyhledat záznamy, které
obsahují danou podmnožinu.

Ta tabulka by ani nemusela být pomocná, pomocí množin se často dají
odstranit nadbytečné tabulky i s příslušnými relacemi, ušetří se i místo
na disku a zrychlí se běh aplikace. V daném příkladě se dá dokonce
odstanit relace M:N, tedy dvě tabulky, a to snad stojí za zvážení.

Kit
-- 
Ing. Vlastimil Pospíchal
http://www.hoteldrnholec.cz



This archive was generated by hypermail 2.1.3 : 25. 07. 2003, 12:47 CEST