Avatar billede cermitto Nybegynder
23. april 2006 - 22:19 Der er 16 kommentarer og
1 løsning

Inik id med ASP

Hejsa. jeg bruger den her til at sætte et unik id på mine poster via MySql, men hvis der oprettes to poster på nøjagtig samme tid, bliver nummeret det samme eftersom det genereres ud fra tiden Now() kan man gøre noget smart for at undgå det?

MD5('" & Now() & "')
Avatar billede cermitto Nybegynder
23. april 2006 - 22:24 #1
Spekulere på om MD5('" & Now() & "+"&session.id"') er nogen god ide??
Avatar billede arne_v Ekspert
23. april 2006 - 23:33 #2
hvorfor ikke bruge et MySQL AUTO_INCREMENT felt

ellers er der Scott Ambler high low approach som laver en database
operation per X numre

ellers prøv tid + process id + thread id
Avatar billede cermitto Nybegynder
24. april 2006 - 10:09 #3
Hvordan virker Scott Ambler high low approach ?
Avatar billede cermitto Nybegynder
24. april 2006 - 10:23 #4
Jeg tænker bare på om det her ikke kan bruges?

MD5("" & Now() & ""& session.sessionID &"")

Fordi sessionID er altid et andet, men kan MD5 i MySql finde ud af det?
Avatar billede arne_v Ekspert
24. april 2006 - 13:07 #5
MySQL kender ikke session.sessionID

men hvis ASP har evalueret session.sessionID inden MySQL kaldes
så bør der ikke være noget problem

MD5 funktionen virker på alt
Avatar billede arne_v Ekspert
24. april 2006 - 13:08 #6
i high low sammensætter du en unik id af en high part og en low part

high part hentes fra databasen (man henter næste værdi og tæller en op)

low part er bare en tæller
Avatar billede cermitto Nybegynder
24. april 2006 - 13:44 #7
Jamen kan MD5 generer et unikt id ud fra dette i ASP?
MD5("" & Now() & ""& session.sessionID &"")
Avatar billede arne_v Ekspert
24. april 2006 - 14:12 #8
ASP NOW() returnerer mig bekendt tid inkl. sekunder d.v.s. at den er unik
medmindre samme session sender mere end en request inden for samme sekund

hvis du kunne få trådid med var du ud over den risiko
Avatar billede eagleeye Praktikant
24. april 2006 - 14:41 #9
Teoretisk set kan MD5() ikke give en unikt id for hvert muligt input da den er begrænset til 32 karakter som output.

Hvorfor laver du ikke bare en int(x) kolonne som du sætter til AUTO_INCREMENT ?
Avatar billede arne_v Ekspert
24. april 2006 - 15:17 #10
de fleste kan leve med risikoen for MD5 kollision

jeg har allerede foreslaaet AUTO_INCREMENT
Avatar billede cermitto Nybegynder
24. april 2006 - 15:17 #11
Jeg har brug for et id format der ligner noget ala:

d6137d789079434ff1f1a82f85ff76hf

Kan int(x) gøre det, eller kræver det ligefrem noget random af en slags?
Avatar billede arne_v Ekspert
24. april 2006 - 15:27 #12
HEX(bigintvalue) vil jeg tro
Avatar billede cermitto Nybegynder
25. april 2006 - 08:36 #13
Når du skriver HEX(bigintvalue) hvad mener du så?
Avatar billede arne_v Ekspert
26. april 2006 - 02:20 #14
du har en værdi (af typen bigint) som du så konverterer til en hex streng
med funktionen HEX
Avatar billede cermitto Nybegynder
26. april 2006 - 09:42 #15
Fint, jeg takker for hjælpen :-)
Avatar billede arne_v Ekspert
27. april 2006 - 05:40 #16
så ligger jeg et svar
Avatar billede cermitto Nybegynder
29. april 2006 - 09:51 #17
Points
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
Kurser inden for grundlæggende programmering

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