Je voulais savoir si nous pouvons avoir un identifiant unique pour tous les objets qui sont stockés dans ZODBest-il un concept clé primaire dans ZODB pour les objets
1
A
Répondre
3
Chaque objet stocké dans la ZODB ne possède un identifiant unique, accessible son attribut _p_oid après que l'objet a été enregistré:
>>> obj._p_oid
les mises en garde habituelles sur les clés primaires appliquent - si vous avez besoin d'un identifiant unique que vous pouvez continuer à utiliser même si vous avez besoin d'exporter vos objets à une autre base de données , tu ferais mieux d'utiliser un uuid que tu gères toi-même. Python a un module uuid (dans stdlib à partir de Python 2.6) qui peut générer des uuids.
Merci pour votre réponse.Je maintiens un attribut Id avec chaque paramètre de classe.Mais quand je crée des objets dynamiques, je dois toujours l'incrémenter.Ainsi j'ai besoin d'un moyen où la valeur ne soit pas surchargée dans ZODB – gizgok
Avoir des identifiants croissants monotones dans ZODB peut être assez compliqué en raison de la fonction de contrôle de concurrence multi-version (MVCC) de ZODB. Si vous pouvez concevoir votre application pour éviter le besoin, je le recommande. Si vous en avez besoin, je vous suggérerais de reformuler votre question de façon spécifique sur la façon d'organiser des identifiants monotones dans la ZODB. –