Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

razlika izmedju PK i UK

[es] :: MySQL :: razlika izmedju PK i UK

[ Pregleda: 3389 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

milig
Igor Miloradovic
informaticar
Despotovac

Član broj: 57330
Poruke: 85
*.vdial.verat.net.

ICQ: 319256294


Profil

icon razlika izmedju PK i UK08.10.2005. u 14:55 - pre 225 meseci
Da li neko moze da mi objasni razliku izmedju PRIMARY KEY i UNIQUE KEY ?
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: razlika izmedju PK i UK08.10.2005. u 16:08 - pre 225 meseci
Generalno:

primary - uvek jednistven i sluzi za identifikaciju reda u bazi;
unique - 'jedno od' polja u tabeli, koji ima extra osobinu - da bude jedinstveno.

U prakticnom smislu, lakse je da:

select * from baza where userid = 1;

u ovom slucaju je userid primary; Odavde mozes da vadis i baratas sa ostalim podacima iz baze, koji su vezani za tog usera.

Sa druge strane, da nema primary ili ako ne zelis da ga definises, onda bi radio sledece:

select * from baza where ime = neko_ime, prezime=neko_prezime, brojcarapa=broj_carapa, vrstapsa = vrsta_psa, bojaociju=boja_ociju itd itd itd

Razlog ovome je, sto nemas nijedan primary (jedinstven) zapis za korisnika, po kojem bi mogao da ga definises, nego mi morao da napravis spoj 'detalja' koji grupisani definisu jednog usera ;)

Kada razmislis o recimo, nekom velikom magacinu, sa 150.000 proizvoda, onda mos' misliti koliki bi posao bio da programer identifikuje jedan od 150.000 proizvoda, da nema primary ;) E, pa isto toliko posla bi bilo i za samu bazu da barata tolikim podacima.

Znaci primary spasava :)

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

SmilieBG
Aleksandar Skodric
NL

Član broj: 13094
Poruke: 1821
*.speed.planet.nl.



+3 Profil

icon Re: razlika izmedju PK i UK08.10.2005. u 16:10 - pre 225 meseci
Ah, da zaboravio sam jos...

Primary je najcesce jos i auto_increment + integer... Da bi prilikom svakog novog zapisa u bazu, sam MySQL odredio koji je sledeci broj za ID... ;)

Poz,
Sale
=========
Uporedi cene i karakteristike za vise od 10.000 proizvoda, izmedju ostalog:
Digitalni foto-aparati
Mobilni telefoni
Skolski pribor
=========
 
Odgovor na temu

misk0
.: Lugano :. _.: CH :.

SuperModerator
Član broj: 634
Poruke: 2824
*.adsl.ticino.com.

ICQ: 46802502


+49 Profil

icon Re: razlika izmedju PK i UK08.10.2005. u 17:55 - pre 225 meseci
I jos jedna relacija
Primary Key je obavezno Unique, a Unique nije obavezno Primary.
Primjera radi, jedna tabela moze imati samo JEDAN Primary ali zato moze imati vishe Unique Key-ova.

Ako ne kontas ovo sve pitaj ponovo, ali objasni sta ne kontas:)
:: Nemoj se svadjati sa budalom, ljudi cesto nece primjetiti razliku ::
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: razlika izmedju PK i UK09.10.2005. u 00:01 - pre 225 meseci
Koliko se secam kolona koja je UNIQUE moze sadrzati NULL vrednosti dok ona koja je PK ne moze.
Owl
 
Odgovor na temu

milig
Igor Miloradovic
informaticar
Despotovac

Član broj: 57330
Poruke: 85
213.244.197.*

ICQ: 319256294


Profil

icon Re: razlika izmedju PK i UK09.10.2005. u 08:18 - pre 225 meseci
Hvala na iscrpnim odgovorima. Ako sam dobro razumeo, UK je samo jedna dodatna osobina koja se moze dodeliti svakom polju (nista spektakularno).
Citat:
misk0: I jos jedna relacija
Primary Key je obavezno Unique, a Unique nije obavezno Primary.
Primjera radi, jedna tabela moze imati samo JEDAN Primary ali zato moze imati vishe Unique Key-ova.

komentar : matematicki receno, PK implicira UK, a obrnuto ne vazi :>

Da malo pojasnim situaciju ...
Pravim PHP/MySQL aplikaciju za vodjenje maticnih knjiga, pa npr. imam tabelu MKR (Maticna Knjiga Rodjenih). U toj tabeli polje maticni broj bi moglo biti UK, ali to je manje vazno.
Primarni kljuc u MKR je polje tekuci_broj koje je oblika :
tekuca_godina / redni_broj_upisa_u_tekucoj_godini
primer: 2004/36

Da li je moguce da ovakav PK bude Autoincrement (s'obzirom da nije integer) ?
 
Odgovor na temu

_owl_

Član broj: 318
Poruke: 1043
*.vdial.verat.net.



+3 Profil

icon Re: razlika izmedju PK i UK09.10.2005. u 10:51 - pre 225 meseci
autoincrement je samo jos jedna osobina koju kolona koja je tipa integer moze da ima (pod uslovom da je ta kolona i PK a mozda i UNIQUE).
Ti u svojoj tabeli imas kompozitni PK (koji se sastoji od vise polja), tako da je odgovor na tvoje pitanje ne. Takodje sto se tvog problema tice imas dva kandidata za primarni kljuc :
1 tekuca_godina, redni_broj_upisa_u_tekucoj_godini
2 maticni broj
U zavisnosti sa kojim tabelama je ova povezana treba da izvrsis izbor kolona koje cine PK.
Owl
 
Odgovor na temu

[es] :: MySQL :: razlika izmedju PK i UK

[ Pregleda: 3389 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.