問題タブ [entity-groups]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
google-app-engine - DjangoForms でエンティティ グループと祖先を使用する方法
高レプリケーション データストアを使用して Google App Engine でフォームを送信した後 (たとえば、新しいエントリを更新または追加するとき) にGAE djangoformsの記事の例を最新の状態で表示されるように書き直したいと思います。
この記事で繰り返し使用される主なクエリは次のとおりです。
これを次のように翻訳します。
このクエリは、フォームを送信した後に高レプリケーション データストアから最新の更新されたデータを取得したいと考えています (これらの場合にのみ、送信後に特定の URL にリダイレクトできると仮定します。ケース私はこれをしません)。
結果を格納するフォームの検証は次のように行われます。
フォームに入力する (編集する) ためにデータストアから最新のエントリを取得すると、次のようになります。
では、フォーム送信後に最新のデータを反映するために、これらのデータストア クエリにエンティティ グループ/先祖キーを追加するにはどうすればよいでしょうか。フォームに入力するとき (編集用) およびフォームを送信した後、すべてのクエリに最新のデータが必要ではないことに注意してください。
実用的なコード例を教えてくれるのは誰ですか?
google-app-engine - Google App Engine 割り当てエンティティ グループ/親キー、一意の制約
私には一種の「顧客」がいます。新しい「Customer」が挿入されようとしているときに、Kind 全体をロックするトランザクションを実行したいと考えています。トランザクションは最初にクエリを実行して新しい「顧客」名がまだ存在しないことを確認し、一致するものが見つからない場合はトランザクションの 2 番目の部分で挿入を実行します。このようにして、一意の制約を適用しています (また、操作を 1 秒あたり約 1 回の挿入に制限しています)。
同じエンティティ グループ内のすべての「顧客」エンティティを取得するための私の不十分な解決策は、「CustomersGroup」と呼ばれる単一のレコードを持つ「EntityGroups」と呼ばれる種類を作成することです。この 1 つのレコードは、新しく作成された「Customer」エンティティの親として毎回使用されるため、Kind 全体が 1 つのエンティティ グループにグループ化されます。
私の質問は次のとおりです。'CustomerGroup' などのファントム レコードの使用について懸念があります。何かが発生して紛失または削除された場合、新しい 'Customer' エンティティを同じグループに割り当てることができなかったからです。各「顧客」エンティティの親に、「1111111」などの静的な任意の親を割り当てる方がよいと思いますか? 用語は「仮想ルート エンティティ」だと思いますが、どうすればよいですか?
これをどのように処理するのが最善かについてのアドバイスを手伝ってください!
google-app-engine - GAE データストアの競合の問題
私たちの GAE アプリは、NDB に別の Web サイトのリレーショナル データベースのローカル コピーを作成します。ユーザー、テーブル、行、フィールドの 4 つのエンティティ タイプがあります。各ユーザーには多数のテーブルがあり、各テーブルには多数の行があり、各行には多数のフィールドがあります。
SomeUser > SomeTable > ARow > AField
したがって、各ユーザーは 1 つのエンティティ グループになります。特定のユーザーのすべてのテーブル (およびその行) を消去できる機能が必要です。~5 操作/秒の競合制限を回避しながら、すべてのテーブルとすべての行を削除する正しい方法は何ですか。
TransactionFailedError
エンティティ グループで競合が発生したため、現在のコードは s を取得しています。(私が見落としていた詳細は、特定の値に設定された属性「サービス」を持つテーブルのみを削除したいということです)
google-app-engine - 投稿コメントのデータストア エンティティ
私は、何でも投稿でき、誰でもその投稿にコメントできるシンプルなアプリを作成しています。すべての投稿を親として、コメントを子として作成するエンティティ グループを作成する必要がありますか?投稿とコメントをエンティティとして持つデータをモデル化する方法が間違っている場合は? ドキュメントには、1 秒あたり 1 回の書き込みの制限があると記載されています。アプリのトラフィックが多く、多くの人が同じ投稿に同時にコメントしている場合、トランザクションの失敗の問題が発生します。これを解決するには?
google-app-engine - 書き込みがトランザクションに含まれていない場合、Google App Engine エンティティ グループはロックされますか
質問と回答のコメント アプリケーションがあります (stackoverflow に似ています)。質問とそれに関連する回答およびコメントは、App Engine Docsで定義されているエンティティ グループの一部を論理的に形成します。
エンティティ グループ/祖先パスを使用してエンティティをグループ化したい理由は 2 つあります。
- 質問と回答のエンティティを物理的にまとめて格納することで、クエリの効率を向上させます
- 祖先クエリを実行できるようにするため、質問エンティティ (関係) に回答キーを保存する必要がなくなります
最終的に競合が発生するため、強い一貫性は必要ありません。
App Engine はエンティティ グループを更新時に常にロックしますか?それともトランザクションで更新が行われている場合にのみロックしますか? 言い換えれば、エンティティ グループは、トランザクションで強制的に更新を行うのか、それとも単にトランザクションを使用するオプションを提供するのか?