[ ndbosna @ 13.01.2009. 10:46 ] @
Pozdrav,

Interesuje me na koji je nacin moguce povezati tabele izmedju razlicitih baza, npr da u tabeli u jednoj bazi imam foreign key koji je primary key u tabeli na drugoj bazi (i da se on zaista i ponasa kao foreign key)? Znam da ovo nije moguce uraditi na direktan nacin. Da li je moguce ovakvo nesto uradiri preko db linka (npr. na Oraclu)? Naisao sam da je moguce ovakvo nesto uraditi i sa triggerima, ali nisam naisao na konkretan primjer.

Sigurno je djelomicno rjesenje da se ova logika prebaci na nivo aplikacije, ali to bas i nije 100 % pouzdano (uvijek se moze potkrasti bug i dovesti do nekonzistentnosti baze(a))

Hvala
[ momsab @ 13.01.2009. 14:36 ] @
u ovom slucaju ja bih napravio posebnu bazu u kojoj bi bile navedene veze izmedju n spomenutih baza i onda bi aplikacija radila sa n+1 baza
[ Getsbi @ 13.01.2009. 15:59 ] @
Ovo ima i te kako veze sa činjenicom da li predpostavljeni DBMS podržava relacije između dve baze (linkovanje nema mnogo veze s ovim i može da se uradi kod većine). Možda bi pravo pitaje bilo: "Koji DBMS to podržava?", pa onda odabati njega.
[ Crtani @ 22.01.2009. 22:11 ] @
Citat:
momsab: u ovom slucaju ja bih napravio posebnu bazu u kojoj bi bile navedene veze izmedju n spomenutih baza i onda bi aplikacija radila sa n+1 baza


Ovo mi nikako nije jasno.
Ako neko ne zna kako da poveze dve baze, kako ce mu pomoci uvodjenje trece baze koju mora da poveze i sa prvom, i sa drugom.
Molim za pojasnjenje.
D.



[ sallle @ 27.01.2009. 00:24 ] @
sa triggerima je relativno lako.

ono sto je smaranje je kucati gomilu triggera, tako da ti savetujem da napravis pomocni program koji bi generisao tekst za kreiranje triggera.

a trigger bi izgledao:

after c/u/d on pkTabela.dbo.pkKolona
uradi nesto (dilituj, updatuj, rollback/raiseerror) na fkTabela.dbo.fkKolona
[ ndbosna @ 27.01.2009. 09:32 ] @
Hvala na odgovorima, vjerovatno cu se odluciti na rjesenje sa triggerima. Jos uvijek mi je sve u jednoj bazi, ali uskoro ce doci vrijeme kada cu neke tabele morati razdvojiti.
[ sallle @ 27.01.2009. 23:54 ] @
btw, ako koristis mssql i ako u storedprocedurama i kodu ne koristis scope_identity() vec @@identity ne pise ti se dobro...
[ ndbosna @ 29.01.2009. 09:27 ] @
Unutar iste procedure sam koristio scope_identity za vracanje ID, medjutim kada iz jedne procedure pozivam drugu koristio sam @@IDENTITY
[ momsab @ 30.01.2009. 01:49 ] @
Citat:
Crtani: Ovo mi nikako nije jasno.
Ako neko ne zna kako da poveze dve baze, kako ce mu pomoci uvodjenje trece baze koju mora da poveze i sa prvom, i sa drugom.
Molim za pojasnjenje.
D.
izvinjavam se sto tek sad odgovaram, prevideh pitanje a posle zaboravih
najpre da dodam da mi je iznesena ideja pala na pamet tokom citanja prve poruke i da je uopste nisam razmotrio
ono sto sam verovatno mislio jeste da u toj bazi "pise" nesto poput "atribut X u tabeli A baze 1 je spoljni kljuc vezan za atribut Y tabele B u bazi 2" i onda se u aplikaciji doda deo koji radi sa njom
tako nekako :)


imam jedno pitanje: da li se u praxi radi radvajanje jedne baze podataka na dve ili vise ili se naprave posebne baze iz koje se u redovnim vremenskim razmacima puni prva (pocetna) baza?
[ deerbeer @ 30.01.2009. 13:41 ] @
Cela stvar vec postoji u nekim relacionim bazama i zove se Linked SQL serveri .
ako koristis MSSQL ovde imas kako da konfigurises linkovane servere sa s.p sp_addlinkedserver
http://msdn.microsoft.com/en-us/library/aa213778(SQL.80).aspx
Posle toga ostaje ti da radis distribuirane upite
npr :
Code:
 
SELECT .... .
FROM server1.db1.tabela1 INNER JOIN server2.db2.tabela2 
ON server1.db1.tabela1.kolona1 = server2.db2.tabela2.kolona2