2010-09-22 10 views
5

Większość identyfikatorów UUID opartych na czasie (typu 1) jest tworzonych przy użyciu bieżącego czasu. Przeprowadzam migrację bazy danych MySQL do Kasandra i chcę utworzyć UUID na podstawie czasu dla zarchiwizowanych elementów. Czy ktoś może podać przykład tego, jak są tworzone UUID typu 1 przy użyciu przeszłych okresów?Czy istnieje sposób na retroaktywne tworzenie UUID opartego na czasie/węźle w PHP?

+2

Prawdopodobnie możliwe, ale dlaczego? Czyż jedynym celem UUID jest unikatowość uniwersalna, nie zawierająca żadnych innych informacji? –

Odpowiedz

3

Wszystkie uuids w wersji 1 są kombinacją identyfikatora węzła (adres MAC), znacznika czasu i losowego materiału siewnego.

Tak, jest to możliwe. Proces jest odwracalny.

Od RFC4122 o części datownika z UUID wersji 1 (sekcja 4.1.4):

„Dla UUID wersji 1, to jest reprezentowana przez Coordinated Universal Time (UTC ) jako liczby Interwały 100-nanosekundowe od 00: 00: 00.00, 15 października 1582 (data z reformy gregoriańskiej na chrześcijański kalendarz ). "

Basic algorithm (section 4.2.1) do tworzenia podstawy czasu UUID (UUID wersja 1)

Powiązane problemy