Cum se păstrează o listă ordonată în baza de date

Cum se păstrează o listă ordonată în baza de date

Din când în când am ajunge în e-mail întrebările de divertisment. Ultima despre stocarea lista ordonată în baza de date.

În cazul în care operațiunea este destul de frecventă, și poate ieftin pentru a stoca ca o zecimală. În acest caz, atunci când introduceți sau muta fotografii între alte două nevoie doar pentru a face upgrade comanda direct de înregistrări transferabile.

Dacă vom muta imaginea C și o pune între fotografie A și B. fotografie comanda pentru valoarea este calculată ca

UPD. din cauza limitărilor de precizie trebuie să fie verificate, indiferent dacă se potrivesc într-o altă valoare de bază. În cazul în care nu - contează ordinea. Chiar și în ciuda faptului că nu suntem de Central eliminate, frecvența acestora a scăzut, în cel mai rău caz un ordin de mărime.

Ca alternativă, în cazul greutăților integrale elemente pot folosi școală BASIC'ovskim truc - zeci de incrementare greutate elemente 10, 20, 30, etc ..

Apoi, greutățile centrale ale altor elemente vor fi necesare mai rar (numai în cazul în care „spațiu“ între două elemente specifice ale stânga), și chiar dacă este necesar - nu este neapărat toate.

Trebuie avut în vedere faptul că în cazul în care comanda = ID-ul și fără spații între elementele, B.order - A.order == 1, iar 1 este foarte rău de mai multe ori împărțită în jumătate, chiar zecimale (n, 6) de capăt rapid, astfel încât să nu faci mizerie în jurul cu fracții puteţi utiliza comanda întreg = id * 1024 (suficient pentru un 10 mișcări „în interior“), uneori preschityvat ordine.

oWeRQ. Bine zis. Zecimal pauze, în cazul aceluiași MySQL, 13 locuri zecimale. Aceasta este suficient pentru 13 diviziuni.

MT. Acest lucru va complica algoritmul, deși cu o zecimală, noi, de asemenea, mai devreme sau mai târziu upremsya.