Python NDB との 1 対多の関係を効果的に実装する方法について、ご意見をお聞かせください。(例: Person(one)-to-Tasks(many))
私の理解では、それを実装するには3つの方法があります。
- 「親」引数を使用
- 「繰り返し」構造化プロパティを使用する
- 「反復」キー プロパティを使用する
私は通常、以下のロジックに基づいて方法を選択しますが、それはあなたにとって理にかなっていますか? もっといいロジックがあれば教えてください。
「親」引数を使用
- これらのエンティティ間でトランザクション操作が必要です
- これらのエンティティ間で双方向参照が必要です
- 「親子」関係を強く志向
「繰り返し」構造化プロパティを使用する
- 「多数の」エンティティを個別に使用する必要はありません (常に「1 つの」エンティティで使用されます)
- 「多くの」エンティティは「1 つの」エンティティによってのみ参照されます
- 「繰り返し」の数が 100 未満です
「反復」キー プロパティを使用する
- 「多数」のエンティティを個別に使用する必要がある
- 「多くの」エンティティは他のエンティティから参照できます
- 「繰り返し」の数が 100 を超えています
No.2 はエンティティのサイズが大きくなりますが、データストア操作を節約できます。(ただし、逆シリアル化の CPU 時間を短縮するには、射影クエリを使用する必要があります)。したがって、私はできる限りこの方法を使用しています。
ご意見ありがとうございます。