[ milosknezevi @ 24.01.2009. 19:58 ] @


Pozdrav, moze li mi iko pomoci oko ovoga...

Sql code:

CREATE TABLE film (
naziv CHAR(50) NOT NULL,
godina INTEGER NOT NULL,
trajanje DATETIME,
ime_studia VARCHAR(50) NOT NULL
);


ALTER TABLE film
ADD PRIMARY KEY (naziv, godina);


CREATE TABLE filmski_ljudi (
ime_ljudi VARCHAR(50) NOT NULL,
adresa_ljudi VARCHAR(50)
);


ALTER TABLE filmski_ljudi
ADD PRIMARY KEY (ime_ljudi);


CREATE TABLE president_studia (
ime_ljudi VARCHAR(50) NOT NULL,
ime_presidenta VARCHAR(50),
adresa VARCHAR(50),
god_prihod INTEGER
);


ALTER TABLE president_studia
ADD PRIMARY KEY (ime_ljudi);


CREATE TABLE studio (
ime_studia VARCHAR(50) NOT NULL,
adresa_studia VARCHAR(50),
god_osnivanja CHAR(18)
);


ALTER TABLE studio
ADD PRIMARY KEY (ime_studia);


CREATE TABLE ugovor (
zarada VARCHAR(50),
ime_studia VARCHAR(50) NOT NULL,
naziv CHAR(50) NOT NULL,
godina INTEGER NOT NULL,
datum_potp DATETIME
);



ALTER TABLE ugovor
ADD PRIMARY KEY (ime_studia, naziv, godina);


CREATE TABLE zvezde (
ime_studia VARCHAR(50) NOT NULL,
ime_zvezde VARCHAR(50),
datum_rodjenja_zve DATETIME
);


ALTER TABLE zvezde
ADD PRIMARY KEY (ime_studia);


ALTER TABLE film
ADD FOREIGN KEY (ime_studia)
REFERENCES studio(ime_studia);


ALTER TABLE president_studia
ADD FOREIGN KEY (ime_ljudi)
REFERENCES filmski_ljudi(ime_ljudi);


ALTER TABLE studio
ADD FOREIGN KEY (ime_studia)
REFERENCES president_studia(ime_ljudi);


ALTER TABLE ugovor
ADD FOREIGN KEY (ime_studia)
REFERENCES studio(ime_studia);


ALTER TABLE ugovor
ADD FOREIGN KEY (ime_studia)
REFERENCES zvezde(ime_studia);


ALTER TABLE ugovor
ADD FOREIGN KEY (naziv, godina)
REFERENCES film(naziv, godina);


ALTER TABLE ugovor
ADD FOREIGN KEY (ime_studia)
REFERENCES studio(ime_studia);


ALTER TABLE zvezde
ADD FOREIGN KEY (ime_studia)
REFERENCES filmski_ljudi(ime_ljudi);


ALTER TABLE zvezde
ADD FOREIGN KEY (ime_studia)
REFERENCES studio(ime_studia);




Ne mogu da umetnem podatke u bazu, npr.
INSERT INTO FILM VALUES('FDSFDS',1999,'12:12','FDSFDSF')
JAVLJA MI GRESKU TIPA

*********'''CANNOT ADD OR UPDATE CHILD .... A FOREYGN KEY CONTSTAINT FAIL...********


TAKO ZA SVAKI POKUSAJ DA UMETNEM U TABELE, SAMO U TABELU FILMSKI_LJUDI MOGU DA UMETMEM

STA JE PROBLEM??

MOLIM DA NEKO MI POMOGNE....
[ jablan @ 24.01.2009. 20:23 ] @
http://en.wikipedia.org/wiki/Foreign_key
[ milosknezevi @ 24.01.2009. 20:49 ] @
Pozdrav


Ako vam nije problem da mi prepravite onaj code bio bih vam veoma zahvalan...




[ Jbyn4e @ 24.01.2009. 22:17 ] @
Pa lepo ti kaze covek, pogledaj link sta tamo pise o foreign key-evima.

Prevedeno: Trazi da nesto bude upisano prvo i da postoji u toj drugoj tabeli na koju se referenciras.

Hint:
Citat:

ALTER TABLE film
ADD FOREIGN KEY (ime_studia)
REFERENCES studio(ime_studia);


Ili da prevedem i ovo (nesto sam dobre volje ;) , ono sto upises u tabelu film, mora da postoji i u tabeli koja je navedena u foreign key-u. Da li imas studio pod nazivom "FDSFDSF"?
[ milosknezevi @ 24.01.2009. 22:57 ] @
Ja sam probao tako nego ali ne radi...

Npr umetnuo sam u tabelu STUDIO prvo sto nema foreigh keyova pa da bih posle u tabelu FILM i ostale ali nece...
ne znam sto je problem...
[ Tudfa @ 25.01.2009. 02:07 ] @
Al ga zapetlja i isprepleta... No, pokusacu bar u necemu da pomognem.

Citat:

Ja sam probao tako nego ali ne radi...

Npr umetnuo sam u tabelu STUDIO prvo sto nema foreigh keyova pa da bih posle u tabelu FILM i ostale ali nece...
ne znam sto je problem...


Ovo ne razumem, sta si mislio, ali ovako :

u tabelu film ne mozes da ubacis nista jer da bi izvrsio upit za ubacivanje filma,
u tabeli studio mora da postoji unet studio(ime_studia). Ali da bi ubacio jedan studio
u tabeli president_studia mora da imas unetog tog presidenta_studia(ime_ljudi??)

Citat:
ALTER TABLE studio
ADD FOREIGN KEY (ime_studia)
REFERENCES president_studia(ime_ljudi);


e ovo mi nije bas najjasnije... col ime_studia ref.col ime_ljudi ?

Pa da bi uneo tog presidenta_studia moras da imas u tabeli filmski_ljudi zapis
o filmskim ljudima(ime_ljudi)?

Tako to ide jer si definisao strane kljuceve tako kao sto si ih definisao.

Jos nesto, cisto da te opomenem , izbor primarnih kljuceva ti nije bas najbolji...
U nekim slucajevima je bolje dodati id atribut, i proglasiti ga za primarni kljuc(surogatni kljuc).
Jedan od razloga za ovo je kada nije moguće ili bar ne elegantno,
jednoznačno identifkovati n – torku pomoću postojećih atributa.

pozZ
[ Shinhan @ 26.01.2009. 08:45 ] @
Citat:
Tudfa:
Jedan od razloga za ovo je kada nije moguće ili bar ne elegantno,
jednoznačno identifkovati n – torku pomoću postojećih atributa.


ili na srpskom:

Moguće je da postoje dva Petra Petrovića.