Platnost zaznamu v ciselniku jeste jednou

Karel Zak zakkr na zf.jcu.cz
Úterý Červenec 22 09:38:54 CEST 2003


On Tue, Jul 22, 2003 at 09:14:55AM +0200, "Zíka Aleš, Ing." wrote:
> > > 
> > > 	Myslel jsem, jestli bych si nepomohl zavedenim systemu 
> > od-do, kdy by
> > > kazdy zavodnik mel jedno stejne jedinecne ID od narozeni az 
> > do smrti, ale
> > > zatim mi to tak ani moc nepripada. Zjednodusim si vypocet zebricku a
> > > zkomplikuji hlidani RI u startovky.
> > > 
> > > 	Ma nekdo nejaky jiny napad?
> > 
> > Už jsem ho tu jednou popsal, zaveďte si druhou tabulku. V 
> > jedné budete mít
> > "instance závodníků", ve druhé závodníky. Při změně údajů 
> > zůstane identita,
> > ale zavede se nová položka do tabulky instancí. Při tvorbě 
> > žebříčku pak
> > prostě dáte 'select sum(POINTS) ... group by IDENTITY'.
> > 
> 
> 	Diky, konecne jsem to pochopil :-) a vypada to docela rozumne,
> vyzkousim to.
> 
> 	Jeste bych se zeptal, jestli existuje nejaka nejvyhodnejsi
> strategie, jak zaznamy podle data platnosti vybirat? Ja pouzivam neco ve
> stylu "WHERE datum BETWEEN VALID_SINCE AND VALID_UNTIL", ale tam je problém
> s "koncovymi" zaznamy.
> 	Mel bych predstavu, ze zaznam, ktery je momentalne plati, bude mit
> VALID_UNTIL = NULL, a pripadne, zaznam, ktery plati "odnepameti" (u
> zakazniku to asi nebude, ale jinde se to muze hodit), bude mit pro umenu
> VALID_SINCE = NULL. Jenze pak tahle podminka nefunguje.

U toho SINCE 'od nepameti' by se asi nejaky datum dal vymyslet. Jinak
si muzete pohrat s COALESCE():

     x BETWEEN since AND COALESCE(until, now())

pripadne na misto now() pouzit nejakou jinou dostatecne velkou
hodnotu (now()+'1year' apod.).

    Karel

-- 
 Karel Zak  <zakkr na zf.jcu.cz>
 http://home.zf.jcu.cz/~zakkr/


Další informace o konferenci Databases