ndbのメソッドを使用してオブジェクトを作成すると、key(kind、id)タイプのキーが自動的に作成されます(idは数値)。ドキュメント全体では、キーのIDに文字列を使用できることが示されていますが、オブジェクトの作成時に自動的にこれを行う方法を見つけることができませんでした。Google App Engine NDBカスタムキーID
私はUserモデルを持っていると私はより高速な検索のための鍵のIDとして(そのユニークなので)ユーザーのユーザー名を使用することを考えていました。それはいいアイデアですか?ユーザーが投稿したので、私はユーザー名に問題がありますか(私は入力を検証しています)?
答えてくれてありがとう、実際には意味があります。私はそれがそれより複雑だと思った。 – andrei
私はこれまでにこのアプローチで待ち時間の問題を経験しました。 DatastoreエンティティのIDを手動で設定することはお勧めできません。「ホットタブレット」の問題も発生します。データストアがエンティティIDを自動的に生成し、データをキー自体にエンコードしないようにするのが最善です。代わりに、エンティティでプロパティを使用します。 プライマリキーの自動インクリメントなど、リレーショナルデータベースの規則をDatastoreに適用することが魅力的かもしれませんが、実際にキースペースのシャドーを元に戻して問題を作成します。 [1] https://cloud.google.com/appengine/articles/handling_datastore_errors –