Gdy utworzę obiekt z metodą ndb, automatycznie tworzy klucz typu Klucz (rodzaj, identyfikator), gdzie id jest liczbą. W całej dokumentacji pokazuje, że możesz użyć łańcucha do identyfikatora klucza, ale nie mogłem dowiedzieć się, jak to zrobić automatycznie po utworzeniu obiektu.Google App Engine NDB klucz niestandardowy id
Mam model użytkownika i myślałem, że użyję nazwy użytkownika użytkownika (ponieważ jest unikalny) jako identyfikatora klucza do szybszego pobierania. Czy to nawet dobry pomysł? Czy miałbym problemy z nazwą użytkownika, ponieważ jest on przesłany przez użytkownika (sprawdzam poprawność danych wejściowych)?
Dzięki za odpowiedź, to ma sens. Myślałem, że to bardziej skomplikowane. – andrei
Wystąpił problem opóźnień z tym podejściem wcześniej. Nie jest dobrym pomysłem ręczne ustawienie identyfikatorów dla obiektów Datastore, ponieważ napotkasz również problem "gorących tabletów". Najlepiej jest pozwolić automatycznym generowaniu identyfikatorów jednostek magazynu danych i nie kodować danych do samego klucza. Zamiast tego użyj właściwości w encji. Może to być kuszące do stosowania relacyjnych baz danych w Datastore, takich jak automatycznie zwiększające się klucze podstawowe, ale to faktycznie cofnie odfiltrowanie obszaru kluczy i spowoduje problemy. [1] https://cloud.google.com/appengine/articles/handling_datastore_errors –