historie a jedinecnost [Re: Platnost zaznamu v ciselniku jeste jednou]

Karel Zak zakkr na zf.jcu.cz
Čtvrtek Červenec 24 10:31:13 CEST 2003


On Thu, Jul 24, 2003 at 10:16:33AM +0200, Radek Kanovsky wrote:
> On Mon, Jul 21, 2003 at 11:41:22AM +0200, Karel Zak wrote:
> 
> Omlouvam se za zpozdeni.
> 
> > > > > -----Original Message-----
> > > > > From: Radek Kanovsky [mailto:rk na dat.cz] 
> > > > > Predpokladejme, ze mame historickou tabulku, kde sloupec "a" ma byt
> > > > > unikatni v kteremkoliv okamziku. Je sice mozne, aby dva zaznamy mely
> > > > > stejnou hodnotu polozky "a", ale jejich platnost se nesmi prekryvat.
> > > > 
> > > > 	Tohle je IMHO velmi jednoduche... PK prece muze byt slozeny...
> > > > => unikatni musi byt dvojice A:platnost...
> > > 
> > > Platnost je ale zadana jako datum_od - datum_do:
> > > 
> > >   insert into hist (id, a, od, do) values(1, 12, '2003-01-01', '2003-02-28');
> > >   insert into hist (id, a, od, do) values(2, 12, '2003-02-01', '2003-03-31');
> > 
> >  Pomerne snadno v triggeru, ktery to prekryvani odhali. 
> 
> Ano, ale zapomnel jsem zminit, ze bych to potreboval z urcitych duvodu
> resit na aplikacni urovni. Nad databazi je objektove-relacni mapovani.
> V tomto konkretnim pripade je preferovana flexibilita nad vykonem a cim
> vic veci bude reseno v programovacim jazyku O-R komponent (python),
> tim lip pro nas.

 Tak na to co by se ptal ten trigger dejte do aplikace do stejne 
 transakce, jako ten insert (nejlepe pred nej:-)

 Asi se shodneme na tom, ze na urovni definice tabulek to tezko
 udelate, takze na to budete muset pouzit jeden extra SQL dotaz. Bud ho
 date do toho triggeru (a pak se vlastne stane soucasti te DB) a nebo
 do aplikace. Asi mi neco uniklo, protoze v tom zadny problem nevidim.
 (Pokud vase aplikace z nejakeho duvodu nepracuje primo SQL dotazy
  a nehcete trigger tak to pak mate problem... :-)

    Karel

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


Další informace o konferenci Test