Question

Je dois créer des objets et les rendre disponibles sur le web. De même à stackoverflow, j'ai quelque chose comme.

http://stackoverflow.com/users/78374

Cependant, dans mon cas l'ID de l'objet que je crée doit être unique, donc je pense à un UUID, conduisant à une URL comme

http://example.com/users/{8e931066-7d87-4f2b-a3b5-608c4c9a9083}

parce que plus tard je vais devoir fusionner différentes bases de données ensemble, et je ne veux pas avoir des problèmes de fusion.

Est-ce une pratique acceptée? Quelles sont les alternatives?

Était-ce utile?

La solution

Si c'est juste une question de bases de données fusionnant, donnant à chaque base de données un identifiant unique, puis en combinant cela avec le PK auto-incrément donnerait ids uniques pour chaque objet que vous pouvez utiliser et ne pas se soucier des problèmes de fusion.

Autres conseils

Il n'y a pas de problème à ce sujet. Hotmail fait cela.

Si la fusion doit être 100% transparente, alors UUID est probablement votre meilleur pari. Si vous cherchez à vous pouvez envisager de générer URL plus conviviale humaine de l'aide d'un « Nom du compte » unique que l'utilisateur peut définir. Cela pourrait créer des conflits si les bases de données de fusion, mais ils peuvent être surmontés.

Je suis d'accord que cela est une pratique acceptable, car elle conserve l'utilisateur ID unique lors de son utilisation sur plusieurs bases de données et applications.

J'utilise la même pratique dans mon bloc d'application de la mise en cache. Le bloc d'application de la mise en cache génère un GUID lorsqu'un élément est mis en mémoire cache et l'application utilise ce GUID pour récupérer l'élément du cache.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top