Avatar billede NielsErikP Mester
19. april 2012 - 22:22 Der er 17 kommentarer og
1 løsning

"ID" i en database..??

Hej...

Er ik ret gammel indenfor dette MySql og database halløj!

Har brug for lige at vide, hvad et "ID" er og hvordan det sættes.

Jeg har et 'nr' som er AUTO_INCREMENT, vil det sige det er "ID'et"??

Har brug for det i forbindelse med at jeg vil tjekke om en "Navngiven"" person med "Aktuel" email adresse før har skrevet et indlæg.
Avatar billede arne_v Ekspert
19. april 2012 - 22:32 #1
ja

id er ikke noget specielt - det er bare et gaengst navn for primaer noegler
Avatar billede mireigi Novice
19. april 2012 - 22:42 #2
ID er forkortelsen for IDentifikation/IDentitet.

Det er en unik reference til et objekt eller data om et objekt. Som registreret borger i fx Danmark, er du selv et objekt. Data om dig er gemt ud fra den unikke reference Den Danske Stat har givet dig; dit CPR-nummer.

ID'et i en tabel i en database svarer groft sagt til CPR-nummeret for de data der er gemt i tabellen. I en typisk database tabel vil ID'et være en primærnøgle (PrimaryKey); én eller flere felter der tilsammen udgør en unik reference for de data der er gemt i hver række i tabellen.

I de fleste tilfælde er en primærnøgle, som du selv er inde på, et fortløbende tal. Men ikke altid, der er visse undtagelser.

For at finde primærmøglen (ID'et), er du nødt til at kigge på tabellens struktur/design. Der bør være en angivelse af, hvilke felter der udgør primærnøglen.

Håber det giver mening for dig :)
Avatar billede NielsErikP Mester
19. april 2012 - 22:43 #3
Hej...

Jo jo.. men er det ik noget der bruges , når der evt... søges efter forskellige ting i DB'en.

Og det du siger ja til.. er det at 'nr' er ID'et??
Avatar billede NielsErikP Mester
19. april 2012 - 22:49 #4
Hej...

#2: hver række i Db'en har et ID/CPR- Nummer???

Vil i begge smide et svar!
Avatar billede mireigi Novice
19. april 2012 - 22:50 #5
Jo, ID'et er hvad der søges efter i en database.

Tag fx. dit spørgsmål her. Det har ID 961549 og alle data for det, kan findes i databasen ud fra dette ID.

arne_v siger ja til at 'nr' højst sandsynligt er ID'et.

Eneste måde at være sikker på dog, er at kigge på tabellens struktur/design.
Avatar billede NielsErikP Mester
19. april 2012 - 23:13 #6
Hej..

Jamen tabellen har jeg ikke lige et billede lagt på nettet af, men den ser sådan ud(Simpel):


nr      int(11)                        Nej None AUTO_INCREMENT
navn    varchar(60)  latin1_swedish_ci Nej None
ugedag  varchar(10)  latin1_swedish_ci Nej None
dato    varchar(16)  latin1_swedish_ci Nej None
besked  varchar(2048)latin1_swedish_ci Nej None
tid    varchar(10)  latin1_swedish_ci Nej None
website varchar(80)  latin1_swedish_ci Nej None
email  varchar(60)  latin1_swedish_ci Nej None



Ved ikke om du kan sige mere ud fra det??
Avatar billede mireigi Novice
19. april 2012 - 23:40 #7
Jeg vil tro at "nr" er dit ID. Jeg kender dog ikke noget til MySQL. Baserer mine svar i forhold til SQL generelt.

Måske arne_v kan være mere behjælpelig med at finde frem til det. Selvom jeg stadigvæk er enig med ham i hans første indlæg.
Avatar billede NielsErikP Mester
19. april 2012 - 23:54 #8
Hej...

Nå..okay!!
Ja.. Det vil jeg da håbe at arne vil være behjælpelig med, men forstår bare ikke, når arne siger ID ikke er noget specielt, at man så bruger det når man søger, så må det vel også være en eller anden form for noget der er specielt.
Avatar billede mireigi Novice
20. april 2012 - 00:05 #9
I database-verdenen findes der ikke noget der hedder ID, som identificerer en unik række i en tabel. Der bruger man primærnøgler, som kan bestå af én eller flere felter.

Ofte opretter man dog et felt i tabellen der hedder "ID", og angiver dette til et fortløbende nummer, som man så kan bruge til sin primærnøgle.

De fleste der arbejder med databaser er indforståede med, at når en person snakker om ID'er, mener han/hun primærnøgler. Det er blot hurtigere, og mere forståeligt for andre, at sige ID i stedet for.
Avatar billede NielsErikP Mester
20. april 2012 - 00:17 #10
Hej...

Det du siger er det at havde jeg lavet :

[div

PRIMARY KEY(nr);

[/div]

Så havde den været der.
Avatar billede mireigi Novice
20. april 2012 - 00:37 #11
Ja.

Du behøver ikke en primærnøgle, men det er en god idé at have det. Både fordi det sikrer dig at du har unikke værdier/referencer til hver række i din tabel, og det gør det nemmere for database-serveren at indeksere dine data, så den hurtigere kan finde dem for dig.
Avatar billede arne_v Ekspert
20. april 2012 - 04:38 #12
En tabel boer have mindst et felt (eller en kombination af felter) som entydigt identificerer en raekke.

Det felt (eller en kombination af felter) eller en af disse udpeges til at vaere primaer noegle.

Visse databaser tillader at man opretter en tabel uden primar noegle, men det er slemt meget slemt. Man boer altid have en primaer noegle.

Databasen sikrer at vardier af en primaer noegle er unikke. Man faar simpelthen fejl ved indsaettelse af et duplikat.

Hvis man har et andet felt (eller en kombination af felter) som ogsaa skal vaere unik, saa kan man saett t saakldt UNIQUE INDEX paa.

Primaer noegler kan vaere enten naturlige eller kunstige. En naturlig primaer noegle er en vardi som har en betydning uden for databasen men som alligevel er unik. Et eksempel paa en naturlig primaer noegle er CPR nummer. En kunstig primaer noegle er en vaerdi som er helt tilfaldigt valgt og kun kendes i databasen. Et eksempel er at nummerere rakker 1, 2, 3, ....

Det er meget meget almindeligt at navngive kunstige primaernoegler id eller en variant af id:

id
xxxid
xxx_id

MySQL understoetter ligesom de fleste andre databaser en nem maade at lave primaernoegler paa. Hvis man saetter AUTO_INCREMENT paa et felt og ikke giver feltet en vaerdi ved INSERT, saa taeller MySQL selv op 1, 2, 3, ...

(man kan godt bruge AUTO_INCREMENT paa andet en primaer noegler, men det bruges sjaeldent)
Avatar billede NielsErikP Mester
21. april 2012 - 23:53 #13
Hej Arne...

Tak for din forklaring... som lidt fortæller mig at 'nr' er min kunstige primær nøgle og mit ID.

Vil du være så venlig at smide et svar??
Avatar billede arne_v Ekspert
22. april 2012 - 02:14 #14
svar

overvej om ikke ogsaa mireigi skal have point
Avatar billede NielsErikP Mester
22. april 2012 - 11:25 #15
Hej...

mireigi smider du også lige et svar, så deler du med arne.
Avatar billede NielsErikP Mester
26. april 2012 - 00:02 #16
Hej...

Nej... Nu kan vi vist ikke vente længere på at mireigi vågner op fra sin nattesøvn :-)

Så Arne_V pointene er dine. Og tusind tak for din forklaring :-)
Avatar billede mireigi Novice
26. april 2012 - 01:26 #17
Behøvede ikke point alligevel :)

Arne besvarede spørgsmålet i MySQL terminologier, hvor mit var mere generelt SQL. Du havde nok mere gavn af hans input i dette tilfælde :)
Avatar billede NielsErikP Mester
26. april 2012 - 01:58 #18
Hej..

Jow jow.. måske, da det er MySql jeg kører, men men du gav da også en lille viden, der var brugbar....

Men fint nok, så skal du da også have en tak for hjælpen :-)
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