GUID steht technisch für Global Unique Identifier. Was es eigentlich ist, ist eine 128-Bit-Struktur, die sich wahrscheinlich nie wiederholen oder eine Kollision erzeugen wird. Wenn Sie rechnen , liegt der Wertebereich in den Undekillionen .
Verwenden Sie Guids, wenn mehrere unabhängige Systeme oder Clients IDs generieren, die eindeutig sein müssen.
Wenn ich beispielsweise 5 Client-Apps habe, die Transaktionsdaten erstellen und in eine Tabelle einfügen, deren ID eindeutig eingeschränkt ist, verwenden Sie Guids. Dies verhindert, dass ein Client gezwungen werden muss, zuerst eine ausgegebene ID vom Server anzufordern.
Dies ist auch ideal für Objektfabriken und -systeme, in denen zahlreiche Objekttypen in verschiedenen Tabellen gespeichert sind, in denen keine zwei Objekte dieselbe ID haben sollen. Dies erleichtert das Implementieren von Caching- und Scavenging-Schemas erheblich.
Eine GUID ist ein "Global Unique IDentifier". Sie verwenden es überall dort, wo Sie eine Kennung benötigen, die sich garantiert von allen anderen unterscheidet.
Normalerweise muss ein Wert nur "lokal eindeutig" sein - die Primärschlüsselidentität in einer Datenbanktabelle muss sich beispielsweise nur von den anderen Zeilen in dieser Tabelle unterscheiden, kann jedoch mit der ID in anderen Tabellen identisch sein . (hier ist keine GUID erforderlich)
GUIDs werden im Allgemeinen verwendet, wenn Sie eine ID definieren, die sich von einer ID unterscheiden muss, die von einer anderen Person (außerhalb Ihrer Kontrolle) definiert wird. Eine solche Stelle in der Schnittstellenkennung auf ActiveX-Steuerelementen. Jeder kann ein ActiveX erstellen und weiß nicht, mit welchem anderen Steuerelement jemand sie verwenden wird - und nichts hindert jeden daran, seinen Steuerelementen den gleichen Namen zu geben. GUIDs unterscheiden sie voneinander.
GUIDs sind eine Kombination aus der Zeit (in sehr kleinen Sekundenbruchteilen) (so dass sichergestellt ist, dass sie sich von allen zuvor oder später definierten GUIDs unterscheidet) und einer Zahl, die Ihren Standort definiert (manchmal aus der MAC-Adresse Ihrer Netzwerkkarte entnommen). (Es ist also sicher, dass es sich von jeder anderen GUID unterscheidet, die derzeit von jemand anderem definiert wird.)
Sie werden manchmal auch als UUIDs (Universal Unique ID) bezeichnet.
quelle
Zusätzlich zu allen anderen Antworten finden Sie hier einen Online-GUID-Generator :
http://www.guidgenerator.com/
quelle
Eine GUID ist eine "global eindeutige ID". Wird auch als UUID (Universally Unique ID) bezeichnet.
Grundsätzlich handelt es sich um eine 128-Bit-Zahl, die auf eine Weise generiert wird (siehe RFC 4112 http://www.ietf.org/rfc/rfc4122.txt ), die die Generierung von Duplikaten nahezu unmöglich macht. Auf diese Weise kann ich GUIDs generieren, ohne dass eine Drittanbieterorganisation sie mir geben muss, um sicherzustellen, dass sie eindeutig sind.
Eine weit verbreitete Verwendung von GUIDs sind Bezeichner für COM-Entitäten unter Windows (Klassen, Typelibs, Schnittstellen usw.). Mithilfe von GUIDs können Entwickler ihre COM-Komponenten erstellen, ohne sich an Microsoft wenden zu müssen, um eine eindeutige Kennung zu erhalten. Obwohl die Identifizierung von COM-Entitäten eine Hauptanwendung von GUIDs ist, werden sie für viele Dinge verwendet, die eindeutige Kennungen benötigen. Einige Entwickler generieren GUIDs für Datenbankeinträge, um ihnen eine ID bereitzustellen, die auch dann verwendet werden kann, wenn sie für viele verschiedene Datenbanken eindeutig sein müssen.
Im Allgemeinen können Sie sich eine GUID als Seriennummer vorstellen, die von jedem jederzeit generiert werden kann und der weiß, dass die Seriennummer eindeutig ist.
Andere Möglichkeiten, eindeutige Kennungen zu erhalten, umfassen das Abrufen eines Domänennamens. Um die Eindeutigkeit von Domain-Namen sicherzustellen, müssen Sie diese von einer Organisation erhalten (die letztendlich von ICANN verwaltet wird).
Da GUIDs unhandlich sein können (aus menschlicher Sicht sind sie eine Folge von Hexadezimalzahlen, die normalerweise so gruppiert sind: aaaaaaaa-bbbb-cccc-dddd-ffffffffffff), verwenden einige Namespaces, die eindeutige Namen in verschiedenen Organisationen benötigen, ein anderes Schema ( häufig basierend auf Internet-Domain-Namen).
Daher beginnt der Namespace für Java-Pakete gemäß Konvention mit dem Domänennamen der Organisation (umgekehrt), gefolgt von Namen, die auf organisationsspezifische Weise festgelegt werden. Ein Java-Paket könnte beispielsweise Folgendes heißen:
Dies bedeutet, dass der Umgang mit Namenskollisionen in die Verantwortung jeder Organisation fällt.
XML-Namespaces werden auf ähnliche Weise auch eindeutig gemacht. Konventionell sollte jemand, der einen XML-Namespace erstellt, ihn unter einem von ihm kontrollierten registrierten Domainnamen "unter" machen. Zum Beispiel:
Eine andere Möglichkeit, eindeutige IDs zu verwalten, sind Ethernet-MAC-Adressen. Ein Unternehmen, das Ethernet-Karten herstellt, muss einen Adressblock erhalten, der ihm vom IEEE zugewiesen wird (ich denke, es ist das IEEE). In diesem Fall hat das Schema ziemlich gut funktioniert, und selbst wenn ein Hersteller Karten mit doppelten MAC-Adressen vermasselt und ausgibt, funktionieren die Dinge immer noch in Ordnung, solange sich diese Karten nicht im selben Subnetz befinden, da über ein Subnetz hinaus nur die IP Adresse wird verwendet, um Pakete weiterzuleiten. Obwohl es einige andere Verwendungszwecke von MAC-Adressen gibt, die möglicherweise betroffen sind, verwendet einer der Algorithmen zum Generieren von GUIDs die MAC-Adresse als einen Parameter. Diese GUID-Generierungsmethode wird nicht mehr so häufig verwendet, da sie als Datenschutzbedrohung angesehen wird.
Ein Beispiel für ein Schema zur Erstellung eindeutiger Kennungen, die nicht sehr gut funktionierten, waren die von Microsoft bereitgestellten IDs für 'VxD'-Treiber in Windows 9x. Entwickler von VxD-Treibern von Drittanbietern sollten Microsoft nach einer Reihe von IDs fragen, die für alle von Drittanbietern geschriebenen Treiber verwendet werden können. Auf diese Weise konnte Microsoft sicherstellen, dass keine doppelten IDs vorhanden waren. Leider haben sich viele Treiberschreiber nie darum gekümmert und einfach die ID in dem Beispiel-VxD verwendet, das sie als Ausgangspunkt verwendet haben. Ich bin mir nicht sicher, wie viel Ärger dies verursacht hat - ich glaube nicht, dass die Eindeutigkeit der VxD-ID absolut notwendig war, aber es hat wahrscheinlich einige Funktionen in einigen APIs beeinträchtigt.
quelle
GUID oder UUID (global oder universell) Unique IDentifier ist eine eindeutige ID :) Wenn Sie eine wirklich einzigartige maschinengenerierte ID benötigen, gibt es Bibliotheken, mit denen Sie eine erhalten können.
Siehe GUID auf Wikipedia für Details.
Wenn Sie keine GUID benötigen, wird ein Zähler, den Sie steuern (auf die eine oder andere Weise, wie ein SERIAL SQL-Typ oder eine Sequenz), inkrementiert. Das Indizieren eines "Text" -Werts (GUID in Textform) oder eines 128-Bit-Binärwerts (was eine GUID ist) ist weitaus teurer als eine Ganzzahl.
quelle
Jemand sagte, es handele sich konzeptionell um 128-Bit-Zufallswerte, und das ist im Wesentlichen richtig, aber nachdem ich ein wenig über UUID gelesen habe (GUID bezieht sich normalerweise auf die Implementierung von UUID durch Microsoft), sehe ich, dass es mehrere verschiedene UUID-Versionen gibt, und die meisten davon sind eigentlich nicht zufällig. So ist es möglich, eine UUID für eine Maschine (oder etwas anderes) zu generieren und diesen Vorgang zuverlässig zu wiederholen, um später dieselbe UUID zu erhalten, was für einige Anwendungen wichtig ist.
quelle
Für mich ist es einfacher, sie einfach als "128-Bit-Zufallswerte" zu betrachten. Welches ist im Wesentlichen, was sie sind. Es gibt einige Algorithmen, um ein paar Informationen in ein paar Ziffern Ihrer GUID aufzunehmen (daher wird der zufällige Teil etwas kleiner), aber es handelt sich immer noch um ziemlich große, fast zufällige Werte.
Da sie so groß sind, ist es äußerst unwahrscheinlich, dass jemals zwei GUIDs generiert werden, die gleich sind. Für alle praktischen Zwecke ist jede jemals generierte GUID weltweit einzigartig.
Ich überlasse es Ihnen, herauszufinden, wo Sie sie verwenden können, aber andere Antworten haben bereits einige Beispiele. Lassen Sie Ihrer Fantasie freien Lauf. :) :)
quelle
Kann aufgrund all der Mathematik, die dahinter steckt, schwer zu verstehen sein. Betrachten Sie es als eine eindeutige ID. Sie können Visual Studio veranlassen, eine für Sie zu generieren, oder .NET, wenn Sie zufällig C # oder eine der vielen anderen Anwendungen oder Websites verwenden. Sie gelten als einzigartig, weil es eine so dumme kleine Chance gibt, dass Sie dieselbe zweimal sehen, dass es sich nicht lohnt, darüber nachzudenken.
quelle
128-Bit-ID mit globaler Eindeutigkeit. Sie können von jetzt an bis zum Sonnenuntergang GUIDs generieren, und Sie generieren nie zweimal dieselbe GUID, und sonst niemand. Sie werden häufig mit COM verwendet.
Zum Beispiel für etwas, für das Sie sie verwenden würden, verwenden wir sie in einem unserer Produkte. Unsere Benutzer können Kategorien und Karten auf verschiedenen Geräten generieren. Wir möchten sicherstellen, dass wir eine auf einem Gerät erstellte Kategorie nicht mit einer auf einem anderen Gerät erstellten Kategorie verwechseln. Daher ist es wichtig, dass IDs eindeutig sind, unabhängig davon, wer sie generiert, wo sie generiert werden und wann sie generiert werden. Wir verwenden also GUIDs (tatsächlich verwenden wir unser eigenes Schema mit 64-Bit-Zahlen, aber sie ähneln GUIDs).
quelle
Ich habe vor einigen Jahren an einem ACD-Callcenter-System gearbeitet, bei dem wir Anrufdetailaufzeichnungen von mehreren Anrufprozessoren in einer einzigen Datenbank sammeln wollten. Ich habe eine Spalte in MS SQL eingerichtet, um eine GUID für den Datenbankschlüssel zu generieren, anstatt eine vom System generierte sequentielle ID (Identitätsspalte) zu verwenden. Damals war es erforderlich, den Standardwert auf NewID zu setzen (oder ihn im Code zu generieren, aber die Funktion NewID () war sicherer). Natürlich kann ein großer Wert für einen Schlüssel ein paar Augenbrauen hochziehen, aber ich würde lieber den Platz aufgeben, als eine Kollision zu riskieren.
Ich habe keine Adresse gesehen, die eine GUID als Datenbankschlüssel verwendet, daher dachte ich, es könnte hilfreich sein zu wissen, dass Sie das auch tun können.
quelle
GUID steht für "Global Unique Identifier" und Sie verwenden es, wenn Sie einen Globally Unique Identifier haben möchten.
In RSS-Feeds sollten Sie beispielsweise für jedes Element im Feed eine GUID haben. Auf diese Weise kann die Feedreader-Software verfolgen, ob Sie diesen Artikel gelesen haben oder nicht. Ohne eine GUID wäre es unmöglich zu sagen.
Eine GUID unterscheidet sich von einer Datenbank-ID darin, dass unsere GUIDs immer unterschiedlich sind , unabhängig davon, wer ein Objekt erstellt - Sie, ich, der Typ auf der Straße . Es sollten keine Kollisionen mit einer GUID auftreten.
Sie sehen auch den Begriff UUID, der für "Universally Unique Identifier" steht. Es gibt im Wesentlichen keinen Unterschied zwischen den beiden. UUID ist der passendere Begriff. GUID ist der von Microsoft verwendete Begriff.
quelle
Wenn Sie eine Kennung generieren müssen, die während der gesamten Lebensdauer Ihrer Anwendung eindeutig sein muss, verwenden Sie eine GUID.
Stellen Sie sich vor, Sie haben einen Server mit Sitzungen. Wenn Sie jeder Sitzung eine GUID geben, sind Sie sicher, dass diese für jede Sitzung, die jemals von Ihrem Server erstellt wurde, eindeutig ist. Dies ist nützlich, um Fehler aufzuspüren.
quelle
Eine besonders nützliche Anwendung von GUIDs, die ich gefunden habe, besteht darin, sie zu verwenden, um eindeutige Besucher in Webanwendungen zu verfolgen, bei denen die Besucher anonym sind (dh nicht angemeldet oder registriert sind).
quelle
GUID = Global Unique IDentifier.
Verwenden Sie diese Option, wenn Sie etwas in einem globalen Kontext eindeutig identifizieren möchten.
Dieser Generator kann praktisch sein.
quelle
Der Wikipedia- Artikel zu GUIDs ist ziemlich klar darüber, wofür sie verwendet werden - vielleicht hilft es, Ihre Frage neu zu formulieren - wofür benötigen Sie eine GUID?
quelle