Avatar billede espeholt_jr Nybegynder
10. september 2009 - 18:48 Der er 7 kommentarer og
1 løsning

Menu struktur i DB

Hvilken måde er bedst til at beskrive en menu struktur?

Har:

ID IDENTITY, PRIMÆR
ParentRef FK til ID, så der er et hierarki
Text

Hvilken virker fint, men hvad hvis jeg vil have mulighed for at ændre ordenen på menu-punkterne?

Kan ikke udskifte ID med et andet ID og dette ville også være ufatteligt dumt. Men skal jeg fx lave en anden int kolonne der kunne hedder SortIndex? eller er der en bedre løsning?

Problemet med et sortindex, er at de skal være forskellige fra start og kan jo ikke bruge IDENTITY da man ikke kan redigere dem så og fordi der er en anden IDENTITY kolonne. Så når jeg skal poste et nyt punkt, skal jeg finde MAX() hver gang.
Avatar billede arne_v Ekspert
10. september 2009 - 18:57 #1
Et sortindex er nok eneste mulighed.

Og du skal have pakket dine opdateringer ind i en transaction med hoejt isolation level.
Avatar billede espeholt_jr Nybegynder
10. september 2009 - 19:06 #2
Kan den nye type Hierchyid egentlig arbejde med rækkefølger? Er dog ikke relevant da de fleste hoteller er v. 2005.

Okay, ved indsættelse af punkter ville du da bruge MAX(). Vi snakker <50 punkter så er ikke alt for krævende.
Avatar billede espeholt_jr Nybegynder
10. september 2009 - 19:10 #3
Edit, er kun <10 punkter da der jo kun behøves et unikt sort index for hvert led.
Avatar billede espeholt_jr Nybegynder
10. september 2009 - 20:07 #4
Ville det iøvrigt være dumt at slette ID, og så lave en combined primærkey med sortindex og parentref?
Avatar billede espeholt_jr Nybegynder
10. september 2009 - 20:09 #5
Glem det sidste, skal bruge ID til ParentRef.
Avatar billede arne_v Ekspert
12. september 2009 - 02:43 #6
Jeg kender ikke Hierchyid.
Avatar billede espeholt_jr Nybegynder
13. september 2009 - 19:32 #7
okay, men opret svar
Avatar billede arne_v Ekspert
13. september 2009 - 19:47 #8
ok
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