Avatar billede korup Nybegynder
03. februar 2004 - 15:39 Der er 5 kommentarer og
2 løsninger

Auto nummer.

Hej
Ja, den skulle ikke være så svær.

Hvordan opretter jeg en tabel hvor id er autonummeret.

tabellen skal indeholde:
int id
varchar(50) navn
text info

/korup
Avatar billede dfens Nybegynder
03. februar 2004 - 15:48 #1
Jeg plejer bare at lave en kolonne med en uniqueidentifier, og så give den en default der hedder (newid())

Men hvis de skal være int, lave en int kolonne, sætte identity til yes, samt angive hvor autonummer skal starte (Seed), og hvor mange den skal tælle op pr record (Increment).
Der må ikke være allow null, og så bare højklike på kolonne og trykke "Set Primary Key"
Avatar billede trer Nybegynder
03. februar 2004 - 16:34 #2
Du skal blot være opmærksom på, at en uniqueidentifier er væsentligt tungere at arbejde med end en identity kolonne - men ellers fungerer begge udemærket som en autonummerering. 

Jeg vil nok anbefale at benytte identity med mindre du har brug for en global unique identifier.
Avatar billede dfens Nybegynder
03. februar 2004 - 17:30 #3
Jeg vil anbefale uniqueidentifier, specielt hvis den skal bruges til websites, da folk sæ ikke kan gætte en evt. ID.

Det behøver dog ikke være som nøgle, men evt. et ekstra felt.
Avatar billede trer Nybegynder
03. februar 2004 - 18:03 #4
Ser ikke problemet. Hvis websiden er designet korrekt så kan det ikke udgøre nogen sikkerhedsrisiko om de "gætter" en id.

Hvis brugeren har mulighed for at misbruge en website vha en tilfældig tal værdi på et website så er der et sikkerhedsmæssigt hul af dimensioner. At lave det så det skal være kendskab til en uniqueidentifier - thja, det pynter lidt på det visuelt, men gør ikke hullet mindre.
Avatar billede dfens Nybegynder
03. februar 2004 - 18:58 #5
trer: Det er en let og forholdsvis sikker metode til at "sikre" mindre vigtige data på.
Men, som du antyder, ikke i nærheden af nok, til f.eks. ordrer i en webshop (der rigeligt med eksempler på computerworld.dk) . Men det er der jo heller ikke nogen der har snakket noget om.
Avatar billede trer Nybegynder
03. februar 2004 - 19:34 #6
dfens: Ok, I tankerne var jeg netop på kunde- og ordredata.

I øvrigt - det er ekstremt vigtigt at man ikke opretter et clustered indeks på en uniqueidentifier. Det er ok at lave indeks / primærnøgle - men det skal være non-clustered.

Grunden er, at med clustered indeks placeres data fysisk i indeks orden og med en uniqueidentifier som nøgle vil en nøgle ikke nødvendigvis være stigende i værdi i forhold til de tidligere. Og så er man i en situation hvor data fysisk skal omorganiseres i databasen.
Avatar billede korup Nybegynder
04. februar 2004 - 08:28 #7
Hej,
Takker for den fine debat, og det er taget til eftertanke..

/korup
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