gpt4 book ai didi

java - 使用对象化的多对多关系?

转载 作者:行者123 更新时间:2023-12-02 10:51:38 24 4
gpt4 key购买 nike

我正在将我的应用程序从关系数据库转移到 objectify/google 应用引擎。

应用程序具有建模如下的关系:

一条消息可以发送给许多用户。每个用户可以有许多发送给他们的消息

我需要能够扫描发送给特定用户的所有消息

如何使用 Objectify 执行此操作?

最佳答案

有多种方法可以做到这一点。

  1. 您可以在用户对象中保存消息列表。这将很好地满足您获取发送给用户的所有消息的要求,因为不需要执行查询。

  2. 您可以在消息对象中保存用户列表。要获取发送给单个用户的所有消息,请执行查询。

  3. 您可以保存上面的两个列表。请记住,在 App Engine 中,通常无需标准化,也无需担心磁盘空间和重复项。几乎总是构建您的结构,以便查询速度更快。

  4. 您可以忘记列表,并拥有关系对象,就像关系数据库中的表一样。在某些用例中,它仍然是 App Engine 中不错的选择,例如当列表太大(数千)并且会使您的对象膨胀并且甚至可能无法查询时。

决定针对您指定的查询采取哪种方法的最重要变量是通常会向单个用户发送多少条消息,以及是否有最大消息数?如果我们谈论的是平均几十条或更少,最多几百条,那么用户对象中的消息列表对我来说听起来是一个不错的选择。如果我们谈论更多,特别是如果没有限制,它就不会那么好用,您将需要进行实际的查询。

关于java - 使用对象化的多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23648054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com