Quando creo un oggetto con il metodo ndb, viene creato automaticamente la chiave del tipo Chiave (tipo, id) in cui id è un numero. In tutta la documentazione mostra che è possibile utilizzare una stringa per l'id della chiave, ma non sono riuscito a scoprire come farlo automaticamente quando viene creato un oggetto.ID chiave personalizzata NDB di Google App Engine
Ho un modello Utente e stavo pensando di utilizzare il nome utente dell'utente (dal suo unico) come ID della chiave per il recupero più veloce. E 'anche una buona idea? Avrei problemi con il nome utente dato che è stato inviato dall'utente (sto convalidando l'input)?
Grazie per la risposta, ciò ha davvero senso. Pensavo fosse più complicato di così. – andrei
Ho riscontrato problemi di latenza con questo approccio in precedenza. Non è una buona idea impostare manualmente gli ID per le entità Datastore, poiché si verificherà anche il problema delle "hotclip". È meglio lasciare che il datastore generi automaticamente gli ID entità e non codificare i dati nella chiave stessa. Utilizzare invece una proprietà nell'entità. Potrebbe essere allettante applicare le convenzioni del database relazionale all'archivio dati, ad esempio le chiavi primarie a incremento automatico, ma in questo modo si annulla la suddivisione dello spazio delle chiavi e si creano problemi. [1] https://cloud.google.com/appengine/articles/handling_datastore_errors –