gpt4 book ai didi

java - 如何在 App Engine 中建模多对多关系?

转载 作者:行者123 更新时间:2023-11-30 12:00:40 26 4
gpt4 key购买 nike

我有一个关于如何在 App Engine 中建立多对多关系模型的问题:

一个Blogentry可以有很多标签,一个标签可以应用于很多博客条目。

我看到了几个场景:

  1. 使用一组字符串作为博客条目的属性。

    • 这让我可以使用标签轻松查询条目
    • 这不允许我获取所有标签及其权重(它们适用于多少条目)
  2. 在 Entry 和 Tag 类之间使用无主关系(Entry 类中标签的键集,反之亦然)

    • 这允许我获取所有标签及其权重
    • 这更容易维护
    • Set 属性是延迟加载的,还是每次都获取整个对象图? (Fetch an Entry,它会抓取一些Tags,每个Tags又会抓取一些Entries)
  3. 使用 1. 但单独维护标签及其权重的数据

    • 这在标签数据和条目中的标签之间存在同步问题

任何输入和指针将不胜感激。我认为这是一个很常见的场景,但我还没有看到任何好的解决方案。

最佳答案

与许多其他数据库管理系统一样,App Engine Datastore 本身不支持多对多关系,但可以通过“连接表”解决。但是,由于 App Engine 的查询语言不支持联接,因此在您的应用程序中使用起来会非常痛苦。 Google 的 BigTable 架构实际上不鼓励这样做,因为分布式连接效率不高。

因此,我建议遵循“保持简单愚蠢”的规则;使用最简单的东西。 “Blogentry”对象中的字符串列表听起来相当可靠。即使它很容易出现竞争条件(人们并行更新,覆盖彼此的更改),但您有多少人在编辑同一篇博文?

关于java - 如何在 App Engine 中建模多对多关系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1747207/

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