PDA

Prikaži potpunu verziju : Mala pomoc iz MySQL-a


mirkan03
2.8.2010, 0:24
Jedno, nadam se lako pitanje vezano za baze i MySql.

Kad se obrise neki podatak iz neke tabele, a da nije sa kraja, ostaje rupa u nizu ID-a....
Npr. Tabela sadrzi 50 redova , ja obrisem 18, 35, 44 - te redove.

Da li je moguce da se tabela nekako optimizira i da ID-evi idu redom do 47(vezano za predhodni primer) tj da ih opet poredja redom bez preskakanja!!!

Hvala unapred!!

irreal
2.8.2010, 7:43
naravno da je moguce, ali je vrlo vrlo VRLO losa ideja!

zasto bi to zeleo da uradis ?

sta mislis da ce biti bolje kad ih poredjas po redu ?


unique ID treba da bude upravo to, jedinstveni id.

cemu id uopste sluzi ? pa za prepoznavanje redova, i za povezivanje redova medju tabelama.

i ti ako povezes dve tabele preko id-a, a onda nakon brisanja nekog reda jednostavno promenis id-eve da bi opet isli po redu - korumpirao si gomilu podataka!

primary key je svetinja, jednom kada ga dodelis to je to, kraj, ne bi trebao ikada da imas drugi unos sa istim.

e sad, naravno, u nekim tabelama imas previse redova i nije zgodno da imas toliko cifara u ID polju.
zato primary key moze da se sastoji iz vise polja, pa moze primary key recimo da ti bude datum + id.
na taj nacin id mozes da resetujes svakog novog dana, jer je sada drugi datum.

ali da menjas postojece id-eve? zaboravi na to! you're looking for trouble!

mirkan03
2.8.2010, 10:46
Hvala drug na odgovoru. Nije toliko bitno,da idu redom, vise estecki, da bude preglednije. Ali posto moze da uvede kojekakve komplikacije, nema veze.

irreal
2.8.2010, 10:52
za estetiku i preglednost tokom rada korisnika manuelno numerisi brojeve u aplikaciji (i taj podatak i ne treba da ide u bazu)

ako ti treba estetika i preglednost u radu sa tabelama, svaki iole ozbiljniji sql editor numerise redove u pregledu.

ako ti bas bas bas treba estetika u samoj tabeli, dodaj jos jednu kolonu koja ce sluziti za tu estetiku i slobodno joj dodeljuj brojeve tako da uvek idu redno, ali je nemoj nikako koristiti kao deo key-a.