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
=========