Sortiranje kolona u tabeli (mysql)

s obzirom na kolicinu informacija koje imam u tabeli, odgovor ne utice na soluciju koju sada trenutno imam, ali bih ipak volio znati…

pretpostavimo da imam tabelu sa adresama ljudi. adrese pripadaju ljudima koji su zaposleni u razlicitim kompanijama. svakak kompanija koristi adresar za sebe i kompanije NE SMIJU vidjeti rekorde drugih kompanija.

za pristup nekoj adresi je dovoljno da imam samo jedan podatak: adresa_id (primary key). medjutim, da bih izbjeg’o da kompanije vide druge adrese koristim primary key napravljen od adresa_id i kompanija_id

create table ( adresa_id int(8) not null auto_increment, kompaija_id int(8) not null, adresa_1 varchar(255) not null, adresa_2 varchar(255) not null, grad varchar(100) not null, ... primary key(adresa_id, kompanija_id) );
posto su addresa_id i kompanija_id zajedno “indexirani” da li ima veze da li koristim

ili

odnosno, kad kreiram tabelu da li postoji razlika izmedju

create table ( adresa_id int(8) not null auto_increment, kompaija_id int(8) not null, ... primary key(adresa_id, kompanija_id) );
i

create table ( kompaija_id int(8) not null, adresa_id int(8) not null auto_increment, ... primary key(kompanija_id, adresa_id) );

Jedina razlika je u tome što kad primary key definišeš kao:

create table ( kompaija_id int(8) not null, adresa_id int(8) not null auto_increment, ... primary key(kompanija_id, adresa_id) );
Onda upit

koristi indeks, dok upit

ne koristi index. Ako u upitu imaš sva polja iz indeksa

select * from adesar where adresa_id=123 and kompanija_id=456 select * from adesar where kompanija_id=456 and adresa_id=123
onda redoslijed njihovog navođenja ne bi smio biti bitan.

Evo ti uprosto odgovor: ne moze drugo rjesenje (da je kompanija_id primary key) jer, kako kazes, vise kompanija cuva adrese tu, tako da je sigurno da ce se jedan kompanija_id ponoviti. To znaci da kompanija_id nije unique polje ergo ne moze biti primary key.

mrsko mi bilo sve čitat, ali naumpade mi fora da dvije kolone mogu činiti unique…

Nema toliko puno za čitati većinom je kod :wink: A ja sam afana skontao da ta kolona “kompanija” označava kojem od afanovih klijenata pripada adresar a ne kompaniju koja se nalazi na adresi, a ako sam pogriješio onda se izvinjavam.

dobro si ti skont’o i tvoj odgovor je upravo ono sto sam i trazio. jasno i kratno.

hvala vedrane.
:slight_smile: