Zidar Canada
Član broj: 15387 Poruke: 3085 *.eqao.com.
|
Ako ne postoje tabele, ne mogu da ti napisem trigger, osim da sam kreiram tabele, za sta neam vremena. Ukoliko si pocetnik, a nesto mi govori da nisam pogresio, savetujem ti da promenis zamisljeni dizajn baze. Nista nije lose u ideji koju imas, izgleda mi veoma cisto sa stanovista normalizacije. Ima samo jedan problem, tesko se implementuje.
Promenjeni dizajn: Ako cuvas trenutnu cenu u tabeli Artikli, svaki artikl u datom momentu imace samo jednu trenutnu cenu. Sada, imaj i u tabeli Korpa cenu artikla. kad ubacis artikl u korpu, prepisi iz tabele Artikli trenutnu cenu. Za ovo ti ne treba trigger, vec se to radi u INSERT naredbi koja ubacuje artikl u korpu.
tblArtikli (ArtklID=PK, NazivArtikla, TrenutnaCena)
tblKorpa (KorpaID=PK IDENTITY, ArtiklID, CenaUTrenutkuProdaje)
Skripta koja odradjuje posao:
DECLARE @ArtikliID int
SET @ArtiklID=27
INSERT INTO tblKorpa
(ArtiklID, CenaUTrenutkuProdaje)
SELECT ArtiklID, TrenutnaCena
WHERE ArtiklID=@ArtiklID
Ova skripta moze da se pretvori u STORED PROCEDURE, pa se proceduri prosledi parametar @ArtiklID. Verovatno ces tako i implementovati ubacivanje artikla u korpu, pomocu stored procedure. Onda tvoja web aplikacija pozove tu stored proceduru i ubaci artikl u korpu.
Kakav god da je tvoj dizajn, unutar stored procedure mozes da pokupis sve podatke koji ti trebaju i onda odradi INSERT INTO tblKorpa.
Bez zavrsenog logickog dizajna baze nema nista. Napravi logicki model, pa onda visi sta ces. Bice ti lakse ako na listu papira nacrtsa semu baze sa vezama izmedju tabela. Onda na lsitu papira ubaci nekoliko rekorda u tblArtikli (i tblArtyikliStavke) pa posmatraj sta treba da se odakle uzme i unaci u tblKorpa.
Zakljucujem da ti nikakvi triggeri ovde ne trebaju. Stored procedures, mozda, ali triggeri ne.
|