Index incremental optimering

Tags:    databaser

Hey :)

Jeg har bakset med dette i en god tid nu, og er ved at have givet op.

MSSQL:

Hvis jeg har 2 produkter, men har haft mange flere, så ser mine IDs (incremental) sådan ud:

ID: 1
ID: 133

Hvordan skal min query se ud, hvis jeg vil have, at IDs skal følge hinanden og fylde huller ud? o.O

f.eks.

ID:1
ID:2

Tak på forhånd :)



Det ville være dumt at ændre, da der vel er tilknyttet andre informationer til IDet.

I relationstabeller er det nødvendigt med en konstant, man kan relatere til fra andre steder i databasen og det er her IDet har sin ret. Ændrer man dette falder relationen til gulvet og du har så en - i og for sig, ubrugelig database.



Nej, der er intet tilknyttet ID'et.
Det er auto increment så man kan skille dem og validere på ID.

Det vil bare se pænere ud, hvis hullerne bliver fyldt ud :P



Hey :)

Jeg har bakset med dette i en god tid nu, og er ved at have givet op.

MSSQL:

Hvis jeg har 2 produkter, men har haft mange flere, så ser mine IDs (incremental) sådan ud:

ID: 1
ID: 133

Hvordan skal min query se ud, hvis jeg vil have, at IDs skal følge hinanden og fylde huller ud? o.O

f.eks.

ID:1
ID:2

Tak på forhånd :)



Normalt bruger man kun identity kolonner (autoincrement) som surrogatnøgler. Hvis du vil have fortløbende produktnumre bør du lave et særligt felt (kolonne) til det formål og opdatere den, når du opretter nye produkter eller sletter dem. Du skal stadig joine over din surrogatnøgle, og sørge for, at surrogatnøglerne stadig er fremmednøgler i relaterede tabeller, men du præsenterer din nye kolonne som de officielle produktnumre






Åh hvor besværligt :S
Meget nemmere i MySQL.

Tak for hjælpen :)



Indlæg senest redigeret d. 21.08.2010 13:47 af Bruger #14181
t