Avatar billede puppetmaster Nybegynder
06. oktober 2005 - 11:47 Der er 10 kommentarer og
2 løsninger

Autonummerings som primær nøgle

Vil en database ikke altid være hurtigst at søge i hvis relationerne baserer sig på Autonummering som primær nøgle?
(yeah, det er skidt design, men det er heller ikke det spørgsmålet går på.... :) )
Avatar billede jensen363 Forsker
06. oktober 2005 - 11:53 #1
Nummeriske værdier er under alle omstændigheder hurtigere at søge på end alfanummeriske :o)
Avatar billede ldanielsen Nybegynder
06. oktober 2005 - 11:56 #2
Det er ligegyldigt om primærnøglen er Autonumerering eller Tal. Den kan også være Tekst eller ethvert andet format, men jeg er 99% sikker på at det er hurtigst at søge på Tal.

Fordelen ved at bruge Autonummering er at du ikke selv skal bekymre dig om at udfylde feltet med noget unikt når du opretter en post, og at du heller ikke risikerer at ændre værdien i en eksisterende post. Udover det er der ingen forskel.

Der er ikke noget "skidt" ved at bruge Autonr., det er "det man gør". Husk blot at indeksere fremmednøglerne. Det sker automatisk hvis du opretter realtioner i Relationsvinduet.
Avatar billede puppetmaster Nybegynder
06. oktober 2005 - 11:56 #3
Yeah, nemlig, men så også med f.eks. ordrer, som ofte er lange numre og måske benytter en datatype som fylder mere end Automummer, så vil det også tage længere tid.
(gad vide hvor meget det kan dreje sig om i en given situation, føler at det må være mange % der er tale om)
Avatar billede puppetmaster Nybegynder
06. oktober 2005 - 11:57 #4
ldanielsen: på datamatikeruddannelse blev vi ellers indprintet at nøgler altid skulle være "rigtige" data, men det går unægtelig lidt hurtigere med Autonummering, så...
Avatar billede terry Ekspert
06. oktober 2005 - 12:12 #5
If the primary key isnt included in the criteria fields and the fields which are included arent indexed, then I dont think its going to make much difference what type of data your primary key has.

Another advantage of using an autonumber as the primary key is in relationships which would otherwise require more than one field.
Avatar billede arne_v Ekspert
06. oktober 2005 - 12:21 #6
Der findes forskellige opfattelser.

Nogen foretrækker en primær nøgle som repræsenterer noget virkeligt fordi
så har man en unik identifikation som brugerne faktisk kender.

Andre foretrækker at en primær nøgle er kunstig og ingen mening har i virkeligheden
fordi så ændrer den sig aldrig.

Man bliver sikkert aldrig enige.

Hvis din uddannelse kun har prædiket det ene så mener jeg at de har svigtet
deres ansvar for at give en bred forståelse for databaser.

Personligt foretrækker jeg en virkelig attribut som primær nøgle hvis der
findes en enekelt som er en god  primær nøgle, men hvis der finde sådan en
så vælger jeg en kunstig (man bliver hurtig meget træt af fler felts primær nøgler).

At jeg så ofte vil vælge at generere de kunstige nøgler i applikationen fremfor
i databasen er bare for at undgå database afhængighed.
Avatar billede arne_v Ekspert
06. oktober 2005 - 12:22 #7
men hvis der *ikke* findes sådan en
Avatar billede puppetmaster Nybegynder
07. oktober 2005 - 09:47 #8
Ok, indprintet er måske er stærkt ord i denne sammenhæng, men muligheden for at benytte f.eks. Autonummering som primær nøgle blev aldrig berørt, selv om vi både brugte Access og SQL Server.
Avatar billede ldanielsen Nybegynder
10. oktober 2005 - 09:12 #9
Jeg villle da også bruge en eksisterende kolonne som primær nøgle hvis der var en. Jeg tror bare det er sket mindre end 10 gange i de 6 år jeg har beskæftiget mig med databasedesign.

Jeg er ikke datamatiker, men har dog læst en del litteratur, og jeg har da aldrig fået den opfattelse at det skulle være dårligt at bruge autonummerering. Udover hvis der findes en god nøgle i forvejen, for man skal da "spare på kolonnerne"
Avatar billede puppetmaster Nybegynder
05. december 2005 - 13:42 #10
Kan vi få nogle Svar på dette spørgsmål?! :)
Avatar billede arne_v Ekspert
05. december 2005 - 13:50 #11
.
Avatar billede terry Ekspert
05. december 2005 - 14:02 #12
svar
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
Dyk ned i databasernes verden på et af vores praksisnære Access-kurser

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