[ Bojann @ 16.05.2004. 18:28 ] @
Evo ovako:
Koristim interbase bazu.
Neka ta baza ima 2 tabele:
GRAD(NAZIV,PTT-kljuc)
STANOVNIK(JMBG-kljuc,IME,PTT)

Polje PTT u tabeli stanovnik je dobijeno povezivanjem ove 2 tabele, odnosno generisanjem fizickog modela jos u power designeru.
E sad, imam unete neke podatke u obe tabele. Zelim da obrisem jedan podatak iz tabele grad.
Medjutim taj grad se nalazi u tabeli STANOVNIK. Meni moj program (u delphiju) dozvoljava da obrisem taj grad iako je on zastupljen u drugoj tabeli. Sta treba da uradim prilikom pravljenja baze(ili kasnije i kad), da ovo sprecim. Mogu ja to rucno sa kodom u delphiju, ali sam 100% siguran da postoji i laksi nacin. Kako?
[ broker @ 16.05.2004. 19:05 ] @
Zabrani u programu direktno brisanje slogova u tabeli gradova a dodaj posebnu pociju za tu namenu koja ce prvo da jednim selectomproveri da li je upotrebljen kljuc u drugoj tabeli pre nego sto ga obrise.
[ gosha @ 16.05.2004. 20:00 ] @
Pogledaj malo referencijalne integritete.

Pozdrav Goran.
[ Dejan Topalovic @ 16.05.2004. 21:00 ] @
Trebaju ti PRIMARY KEY u jednoj i FOREIGN KEY u drugoj tabeli. Definises ih pri kreiranju tabele.
[ NetworkAdmin @ 16.05.2004. 22:42 ] @
mozes forein key da dodas i kasnije sa alter table... pazi kasnije ako ti neko obrise grad da ne pitas se gdje nestadose svi ljudi iz tog grada
[ broker @ 17.05.2004. 00:56 ] @
Citat:
gosha:
Pogledaj malo referencijalne integritete.


Za neke platforme je referencijalni integritet misaona imenica, nazalost.
[ Bojann @ 17.05.2004. 01:12 ] @
Citat:
NetworkAdmin:
mozes forein key da dodas i kasnije sa alter table... pazi kasnije ako ti neko obrise grad da ne pitas se gdje nestadose svi ljudi iz tog grada



Probao sam tako, ali on mi ne obrise ljude iz gradova, vec prijavi gresku. A sta da uradim da mu i to omogucim da mi obrise ljude iz tih gradova?
[ Dejan Topalovic @ 17.05.2004. 03:39 ] @
@Bojann: Kako si kreirao tabelu? Mozes li pokazati strukturu? Za brisanje na nacin koji zelis, pogledaj sintaksu kreiranja tablice uz koristenje PRIMARY i FOREIGN KEY-eva, te opciju ON DELETE CASCADE.
Eventualno da iskombinujes nesto sa triggerom, ali ne treba komplikovati, kad se vec moze uraditi sa ovim referencijalnim integritetima.

@broker: InterBase podrzava referencijalne integritete. Ne znam na sta se odnosi ta misao, tj. na koju platformu?