2009-11-25 4 views
0

J'ai une tableview avec des données, que je poste dans la base de données du moteur de l'application. Chaque fois que je supprime une entrée dans la table, je souhaite également supprimer l'élément dans la base de données du moteur de l'application. Comment savoir quelle entrée supprimer?iphone table view supprimer l'entrée et mettre à jour le moteur de l'application db

Je pensais à ceci:

pour chaque élément i enregistrer dans le magasin GAE, je fais référence à un modèle avec l'identifiant unique de l'appareil iPhone. pour chaque article que je sauvegarde dans le magasin GAE, j'insère un UUID pour iphone db & app moteur db.

Donc ma question serait quelque chose comme ça ex:

del item where unique device id = #### 
and item UUID = #### 

Je ne veux pas vous connecter à App Engine, c'est pourquoi je suis en utilisant l'identifiant unique de l'appareil.

Ma seule préoccupation est la performance, GAE doit rechercher ID de l'appareil et l'UUID, je ne sais pas si ce sera un problème?

Meilleure solution serait si juste pourrait le supprimer par son db.Key(), mais je ne sais pas comment faire cela, parce que quand je publie les données à GAE je ne sais pas quelle clé il a généré.

Quelqu'un pourrait-il me donner un conseil?

Répondre

1

L'approche que vous suggérez est raisonnable. Si vous spécifiez l'UUID comme nom de clé, vous pouvez le supprimer directement. Pour créer une entité avec un nom de clé, faites:

MyEntity(key_name=a_string, ...) 

Pour supprimer une entité par nom de la clé (sans aller chercher d'abord), faites:

db.delete(db.Key.from_path("MyEntity", a_string)) 

Il n'y a pas besoin d'avoir à la fois un UUID et un ID de périphérique - l'UUID est suffisant pour garantir l'unicité de tous les périphériques.

+0

Merci beaucoup! – Ton

Questions connexes