[ DARK_MESSIAH @ 16.01.2013. 11:21 ] @
Treba mi malo objašnjenje...
Solidno razumijem kako dizajnirati bazu podataka iz nekog scenarija ali ne kontam kad je FK samo FK koji referencira neku tabelu, a kad je FK ujedno i PK neke tabele...
I na kraju, kako se u SQL - u kreira taj FK koji je i PK?

Hvala..
[ Predrag Supurovic @ 16.01.2013. 14:38 ] @
Ako sam te dobro razumeo:

- FK je uvek PK foreign tabele

- FK moze biti PK osnovne tabele ako je ta tabela u 1:1 vezi sa foreign tabelom.

[ deerbeer @ 16.01.2013. 15:10 ] @
Ili je mozda pomesao sa indexom te tabele koja ima FK druge tabele
[ DARK_MESSIAH @ 16.01.2013. 15:45 ] @
Tražio sam malo na google, pa mi recite jesam li dobro shvatio...

Ako imamo npr. entitet Slikar koji sadrži atribute id_slikar PK, ime, prezime, datum_rodjenja
Drugi entitet je Slike sa atributima id_slike PK, naziv_slike, godina...

I sad kad bi htio da napravim da jedan slikar može slikati više slika, u prvu tabelu stavljam id_slike kao FK (tj. PK druge tabele je sad FK prve tabele)..

A ako je slučaj da imam entitet Student i entitet Knjige.. Sad hoću da napravim da jedan student može kupiti više knjiga i da više knjiga može kupiti više studenata, tj. relacija M:N, pravim novi entitet npr. Narudzba i u njega stavljam id_student koji je FK ali i PK, id_knjige isto FK i PK..

Znači PK jedne tabele će biti FK ali i PK (u drugoj tabeli) ako se radi o relaciji M:N, tj. razbijanju te relacije na dvije 1:N ?
[ Predrag Supurovic @ 16.01.2013. 19:29 ] @
ako imas tabelu slikari:

id_slikar PK,
ime
prezime
datum_rodjenja

i tabelu slike:

id_slike PK
naziv_slike
godina

A hoces da u bazu uneses vise sliak za jednog slikara onda ti treba treca tabela: slike_slikara:

id_veze PK
id_slikara FK
id_slike FK

ili ako neces da uvodis id_veze onda ces koristiti id_slikara + id_slike kao PK


Slično je i za drugi primer sa studentom.



K imas na primer tabelu auth:

user_id PK
username
password

i tabelu korsinici koja je u 1:1 vezi sa prethopdnom onda ćeš napraviti:

user_id PK, FL
name
birth_date
join_time



U tabeli korisnici će ti polje user_id biti i PK i FK.
[ Mr. Rejn @ 02.02.2013. 09:28 ] @
Citat:
Predrag Supurovic: ako imas tabelu slikari:

id_slikar PK,
ime
prezime
datum_rodjenja

i tabelu slike:

id_slike PK
naziv_slike
godina

A hoces da u bazu uneses vise sliak za jednog slikara onda ti treba treca tabela: slike_slikara:

id_veze PK
id_slikara FK
id_slike FK

ili ako neces da uvodis id_veze onda ces koristiti id_slikara + id_slike kao PK


Slično je i za drugi primer sa studentom.



K imas na primer tabelu auth:

user_id PK
username
password

i tabelu korsinici koja je u 1:1 vezi sa prethopdnom onda ćeš napraviti:

user_id PK, FL
name
birth_date
join_time



U tabeli korisnici će ti polje user_id biti i PK i FK.


Moze valjda da stavi ID slikar u slike kao FK

id_slikar PK,
ime
prezime
datum_rodjenja
--------------
id_slike PK
naziv_slike
godina
id_slikar FK

da ne pravi trecu tabelu?
[ Dexxxl @ 02.02.2013. 16:01 ] @
Vise puta prezvakavana tema, na primer ovde:

http://www.elitesecurity.org/t298719-Tabele-relacije-osnove
http://www.elitesecurity.org/t335832-Projektovanje-baze-podataka
[ Getsbi @ 02.02.2013. 21:54 ] @
@Mr. Rejn je u pravu. @ Predrag Supurović je napravio omašku. U realnom suistemu jednu sliku slika jedan slikar, te nema potrebe za asocijativnom (veznom) tabelom, jer nema ni veze više prema više. Mada sam ja daleko od umetnosti. Ako se pokaže da na jednoj slici mogu da učestvuju dva autora, onda bi Peđino rešenje imalo smisla.