2009-08-22 22 views
0

Ich wollte eine eindeutige Zeichenfolge mit einer Länge von nicht mehr als 15 Zeichen in Ziel C (oder mit Hilfe von Iphone SDK 3.0) erstellen.Erstelle eine eindeutige Zeichenfolge Iphone SDK 3.0

Ich brauche das für mysql Tabelle. Ich weiß, dass mysql auto increment für Primärschlüssel tun wird, aber ich muss wirklich den eindeutigen Schlüssel von Iphone Itself schicken. Jeder Rekord in meiner Tabelle musste einen eindeutigen Schlüssel haben.

Die einzigartige Zeichenfolge sollte einzigartige und alphanumerische und maximal 15 Zeichen

Vielen Dank im Voraus, Sridhar,

Antwort

1

Normalerweise würde ich eine UUID/GUID (wie NWCoder does in his link) empfehlen, aber eine UUID ist 16 Bytes Rohdaten, so dass es nicht in 15 Bytes von Daten ausgedrückt werden kann, weit weniger in 15 alphanumerischen Zeichen.

Also dann wird die Frage, wie "einzigartig"?

Einzigartig nur die Tabelle wäre einfach, verwenden Sie einfach einen inkrementierenden Wert und eine unsigned int oder hex Daten.

Einzigartig auf der Welt wäre schwieriger. Sie könnten näher kommen, indem Sie eine UUID erzeugen, diese dann mit MD5 hashen und dann so viele Bits wie möglich in Basis konvertieren (10 + 26 + 26 für Groß-/Kleinschreibung oder 10 + 26 für Groß-/Kleinschreibung) und übernehmen die ersten 15 Zeichen.

Einzigartig nur für den Benutzer, aber (wie Sie später beschreiben) einzigartig in der Gegenwart von Nicht-Internet-Konnektivität würde am einfachsten durch die einfache Generierung einer zufälligen Zeichenfolge von 15 alphanumerischen Zeichen getan werden. Dies wäre wahrscheinlich funktional äquivalent zu der obigen UUID/MD5-Methode - im Wesentlichen ist die Wahrscheinlichkeit einer Kollision sehr, sehr klein, und da der Benutzer nur eine Handvoll von Ausflügen hat, gibt es im Wesentlichen keine Kollisionsgefahr (unter der Annahme, dass Sie säen der Zufallszahlengenerator geeignet).

1

Es gibt eine einfache Antwort darauf, dass Sie fehlen. Jede Reise hat einen Primärschlüssel, der aus zwei Zahlen besteht.

Wenn eine Reise auf dem iPhone erstellt wird, erhält sie eine eindeutige Nummer (zB 1,2,3,4,5).

Wenn eine Reise mit dem Server synchronisiert ist, geben Sie die eine besondere eindeutige Nummer iphoen, die vor geht, das heißt, wenn iphone Nummer 10421 ist, die Reise Zahlen 10.421,1 werden, 10421,2, usw.)

Dies garantiert, dass Alle IDs sind immer eindeutig.