0

私にはClub実体と実体があるとしましょうUser。AClubにはメンバーのリストがあります。

Clubsここで、ユーザーが参加しているすべてのものを取得したいとします。これを行うには2つの方法があり、それぞれにメンバーのリストが含まれます。

  1. リストは、メンバーの電子メールアドレスである文字列のリストにすることができます。ユーザーが参加しているクラブを取得したい場合は、そうしますclubQuery.filter('emailAddresses =', userEmail)

  2. リストはReferencePropertiesのリストにすることができ、各アイテムはUserエンティティへの参照です。だから私はしますclubQuery.filter('userReferences =', user_key)

どちらが良い選択肢でしょうか、そしてその理由は何ですか?それとも、2つの間に本当に違いはありませんか?

4

1 に答える 1

0

メールの平均的な長さによっては、メールを保存することでストレージ容量を節約でき、キーが長くなる場合があります。か否か。

キーによるデータストアの取得を行うと、フィルター操作から得られる最終的に整合性のある結果ではなく、強い整合性のある読み取りを行うことができます。キーを保存する場合は、必要に応じてこれを行うオプションがあります。

メールアドレスをキーとして使用するという 3 番目のオプションがあるようです。そうすれば、両方の長所を最大限に活用できます。

編集私はあなたの質問に本当に答えていなかったと思います。これがより良い答えです。

  • オプション 1 では、ストレージ スペースを節約できるため、多少のコストを節約できます。小さいですけど、もしかしたら微々たる物かもしれません。
  • オプション 2 では、自動逆参照が得られるため、Club 側でのコードの記述が容易になります。
  • ユーザーがどのクラブに所属しているかを照会する方法に大きな違いはありません。
  • 電子メールに関する私の提案をキーとして使用すると、ユーザー エンティティを一貫してフェッチできるようになる可能性があります。これは、あなたが求めていなかった利点です。
于 2012-08-25T15:07:19.253 に答える