06. oktober 2005 - 11:47Der 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å.... :) )
I dette særtema om aspekter af AI ser vi på skiftet fra sprogmodeller til AI-agenter, og hvordan virksomheder kan navigere i spændet mellem teknologisk hastighed og behovet for menneskelig kontrol.
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.
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)
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å...
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.
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.
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.
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"
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.