2009-10-21 12 views
3

J'ai le problème suivant. J'attribue à un objet de ma base de données un UUID. Quand j'obtiens un UUID de n'importe quelle source, pour obtenir l'objet j'ai besoin de savoir quel type d'objet est, ainsi je peux interroger la table correcte dans la base de données. Pour autant que je sache, la version 5 d'UUID prend en charge les espaces de noms, mais je ne suis pas sûr d'en comprendre clairement le sens.Espace de noms UUID et nom. Comment le récupérer?

Est-il possible d'associer à un UUID des informations sur l'espace de noms auquel il appartient, afin de le récupérer plus tard?

Répondre

2

Est-il possible d'associer à une information UUID sur l'espace de noms il appartient,

Oui, voir this document.

pour ainsi récupérer plus tard

Peut-être. Le problème est que deux espaces de noms différents peuvent correspondre à la même valeur de hachage. Pour éviter cela, vous devez numéroter manuellement vos noms (au lieu de les hacher). Ensuite, mettez le nombre dans les octets 0-3. Cela vous donne un mappage déterministe entre les UUID et les noms.

+0

Je suppose que ce n'est pas automatique avec uuid5. vous devez mettre en œuvre la norme uuid pour que cela se produise. ou pas ? –

+1

C'est simple: utilisez un générateur qui peut créer des UUID de version 5 et écraser les quatre premiers octets avant de remettre l'UUID à la base de données. –

+0

Et réduire considérablement la probabilité UU de l'UUID. – Grod

Questions connexes