Avatar billede jhjorsal Mester
25. marts 2003 - 09:17 Der er 4 kommentarer og
1 løsning

Rækkefølge

Hvis man har en tabel der feks indeholder oplysninger om mejetærsker og man ønsker dem representeret på en bestemt måde (uden logik) kunne man lave et felt som indeholder en talværdi og lade det være rækkefølgen, skal man så indsætte en ny mejetærsker, skal man indsætte et tal i det før omtalte felt som gør at den bliver placeret det rigtige sted og derefter kunne man lave en renummering af alle records så det altid er muligt at indsætte en ny record mellem andre. Men kan man gøre det på en smarter måde da jeg syntes det virker lidt omstændig
mvh
Johnny
Avatar billede disky Nybegynder
25. marts 2003 - 09:20 #1
Du kan give dem numre der f.eks. springer 100 hver gange
så har du f.eks. brugt

100
200
300
400

Men pludselig kommer der en der skal imellem 300 og 400, så den kalder du så 350
Avatar billede jhjorsal Mester
25. marts 2003 - 10:40 #2
Ja eller hvis jeg har 1000 imellem så får jeg flere muligheder, og det ville sikkert løse mit problem da det er begrænset hvormange mejetærsker der skal ind, men jeg syntes ikke det er en ret pæn måde at gøre det på da der teoretisk kunne opstå problemer hvis brugeren ikke tænker sig om, derfor foreslår jeg jo selv at lave en renummerering og det kunne være med spring på eksempelvis 100 eller bare 2 så kan der altid være en imellem, men jeg kunne bare forestille mig at der var en smarter måde at gøre det på.
mvh
Johnny
Avatar billede nop Nybegynder
25. marts 2003 - 10:54 #3
Der er ikke nogen indbygget sql metode.
Den rigtige metode (hvis jeg skal vælge) er at alle dinne mejetærskere får en unique identifyer som fx laves med sql identifyer. Og at du så sætter et rank felt på som angiver hvordan du ønsker at vise rækkerne.
Og det ville da være smart at gøre som disky og lave spring i rank-tallet, og så finde ud af ved en ny indsætning om der er plads i rank-ordenen(ha!) til en indføjelse, hvis der er så brug en halvverings-metode til at give den ny-indsatte et nummer midt imellem den før og den efter, hvis der ikke er plads så undersøg om det bedst kan betale sig at flytte den før eller den efter, og brug igen halverings-princippet så du får mest muligt ud af at skulle renummerere, det hele skal i et loop som flytter flere foran/bag indtil der er plads (og måske er sikret plads til fremtidig indføj).
Det er slet ikke nemt ! Men alogoritmen vil jo kunne bruges en masse steder tag fx bare ...øh men den er ihvertilfælde interresent !
--nop
Avatar billede nop Nybegynder
25. marts 2003 - 10:59 #4
Lige en kort kommentar; linkede lister, her behøves du kun at renummerere den der peger til den du skal lægge en ny ind foran, samt sætte den nye næstes til at pege på den som den før pegede på (kan det læses), men den er kun god hvis du læser alle til en ram-baseret liste. Der skal indvidere en "first" pointer til og sidste vil pege til "nil".
Avatar billede jhjorsal Mester
27. marts 2003 - 20:10 #5
det indkomne svar kom jeg vist selv med i spm.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester