IDã®çš®é¡ã®éã
| çš®é¡ | äŸ | ç¹åŸŽ |
|---|---|---|
| UUID v4 | f47ac10b-58cc-4372-a567-0e02b2c3d479 | æãåºã䜿ããã圢ã122ããããã©ã³ãã ã§ãéãªãå¿é ã¯å®è³ªãããŸããã䞊ã³é ã«æå³ã¯ãããŸãã |
| UUID v7 | 018bcfe5-6800-7005-b285-0e236d6fcca6 | å é ãããªç§ã®æå»ãªã®ã§ãäœã£ãé ã«äžŠã³ãŸããããŒã¿ããŒã¹ã®äž»ããŒã«äœ¿ããšã玢åŒãä¹±ãã«ããéããªããŸãïŒRFC 9562ïŒ |
| UUID v5 | 2ed6657d-e927-568b-95e1-2665a8aea6a2 | åå空éãšååãã SHA-1 ã§äœããŸããåãå ¥åãªãããã€ã§ãåãUUIDã«ãªããŸãïŒURLãã¡ãŒã«ããIDãæ±ºããããšãïŒ |
| ULID | 01ARYZ6S41TPK3JK3QPV4WM8CB | æå»ïŒããªç§ïŒïŒã©ã³ãã ã®26æåãäœã£ãé ã«äžŠã³ã倧æåã®è±æ°åã ããªã®ã§URLã«ããã®ãŸãŸäœ¿ããŸã |
| NanoID | V1StGXR8_Z5jdHi6B-myT | æšæºã¯21æåã§ UUID v4 ãšåããããéãªãã«ãããçã㊠URL ã«äœ¿ãããã圢ãé·ããšæåãéžã¹ãŸã |
IDã¯ãã©ãŠã¶ã®å®å šãªä¹±æ°ïŒcrypto.getRandomValuesïŒã§äœããå€éšã®ãµãŒããŒã«ã¯éä¿¡ããŸãããäœã£ãIDã¯ä¿åããŸããïŒèšå®ã ããããã®ç«¯æ«ã«æ®ããŸãïŒã
説æ
ã·ã¹ãã éçºãããŒã¿ããŒã¹èšèšã§äœ¿ãäžæãªIDïŒUUIDã»ULIDã»NanoIDïŒãããŸãšããŠäœããããŒã«ã§ãã
ãã¹ãããŒã¿ã®æºåããèšå®ãã¡ã€ã«ã»SQLã«è²Œãä»ããIDãå¿ èŠãªãšãã«ãæ°ãšåœ¢åŒãéžãã§ãããã«ã³ããŒã§ããŸãã
æäœã®æé
- ãIDã®çš®é¡ããéžã³ãŸããçš®é¡ãå€ãããšãããã«æ°ããIDãäœãããŸã
- ãäœãæ°ããšãåºåã®åœ¢åŒãïŒ1è¡ã«1ã€ã»JSONé åã»SQLã®INå¥ãªã©ïŒãéžã³ãUUIDãªã倧æåã»ãã€ãã³ãªããªã©ã®æžãæ¹ãéžã¹ãŸã
- UUID v5 ã¯ãåå空éããšãååãïŒ1è¡ã«1ã€ïŒããNanoID ã¯ãé·ãããšã䜿ãæåããæå®ããŸã
- ããã¹ãŠã³ããŒãã§ã³ããŒãããã¡ã€ã«ã«ä¿åãã§ããã¹ããã¡ã€ã«ãšããŠä¿åã§ããŸãããäœãçŽããã§æ°ããIDã«å ¥ãæ¿ãããŸã
èšç®æ¹æ³
- UUID v4ã»v7 㯠RFC 9562 ã®åœ¢åŒã©ããã«ãããŒãžã§ã³ãšããªã¢ã³ãã®ããããèšå®ããŠäœããŸã
- UUID v7 ãš ULID ã¯ãåãããªç§ã®äžã§ç¶ããŠäœã£ããšãããäœã£ãé ã«äžŠã¶ãããç¶ãã®å€ã1ãã€å¢ãããŠããŸã
- NanoID ã¯ãæå®ããæåã®äžããåããªãéžã¶ããã䜿ããªãå€ãæšãŠãæ¹æ³ïŒæåŠãµã³ããªã³ã°ïŒã§æåãæ±ºããŠããŸã
ãæ³šæ
- äžåºŠã«äœããã®ã¯1000åãŸã§ã§ã
- UUID v5 ã¯ãåãåå空éãšååããã¯å¿ ãåãIDã«ãªããããæšæž¬ãããŠã¯å°ãå€ïŒãã¹ã¯ãŒãã®åèšå®çšãªã©ïŒã«ã¯äœ¿ããªãã§ãã ãã
UUIDïŒUniversally Unique IdentifierïŒã¯ã128ãããã®æ°ã§ãäžçäžã§éãªããªãIDããäœãããã®æ±ºãŸãã§ããv4 ã¯122ããããã©ã³ãã ãªã®ã§ãæ¯ç§10ååãã€äœãç¶ããŠããéãªã確çã50%ã«ãªããŸã§çŽ85幎ãããèšç®ã§ãã
2024幎ã«ãUUIDã®æ°ããæšæº RFC 9562 ãå ¬éãããæå»é ã«äžŠã¶ v7 ãæ£åŒã«å ãããŸãããããŒã¿ããŒã¹ã®äž»ããŒã«ã©ã³ãã 㪠v4 ã䜿ããšãæ°ããè¡ã玢åŒã®ãã¡ãã¡ã«å ¥ã£ãŠé ããªããã¡ã§ãããv7 ã ULID ãªãåŸãã«è¿œå ãããŠãããããæžã蟌ã¿ãéããªããŸãã
NanoID 㯠JavaScript ã®äžçã§åºãŸã£ãçãIDã®äœãæ¹ã§ãæšæºã®21æåïŒ64çš®é¡ã®æåïŒã¯ UUID v4 ãšã»ãŒåãéãªãã«ããã§ããULID ã®ãCrockford ã® Base32ãã¯ãèªã¿ééãããã Iã»Lã»Oã»U ã䜿ããªã工倫ããããŠããŸãã
ã¿ããªã®å£°ã»ãæèŠããã¯ã¹
ãUUIDã»ULIDã»NanoID äžæ¬çæãã«ã€ããŠãææ³ã»äœ¿ãã«ãããšããã»æ¬²ããæ©èœãªã©ãæ°è»œã«æããŠãã ããã
ãŸã æçš¿ããããŸãããæåã®äžèšããåŸ ã¡ããŠããŸãïŒ
å©çšã«ãéã¯ããããŸããïŒäŒå¡ç»é²ã¯å¿ èŠã§ããïŒ
å ¥åããå 容ã¯ãµãŒããŒã«éãããŠããŸããïŒ
ã³ã¡ã³ãæ¬ã«æçš¿ãããå 容ã ãã¯ãä»ã®æ¹ã«ãèªãã§ããã ãããã«ãµãŒããŒãžä¿åãããŸãã