【问题标题】:How to model a Many-to-Many relationship in Google Datastore C# .NET如何在 Google Datastore C# .NET 中建模多对多关系
【发布时间】:2018-10-24 19:58:45
【问题描述】:

我需要在 google-cloud-datastore 中为一对多或多对多关系建模。有很多关于 Python RE 这个概念的文档,但是缺乏关于灵活环境特别是 C# 的文档。

这是我当前的代码,这会导致密钥以 json 格式存储在数据存储区中。

    var keys = request.Subjects.Select(key => new Key().WithElement(Kind.Subject.ToString(), key.ToLower()));

        Key[] keyArray = keys.ToArray();
        Entity requestEntity = new Entity
        {
            Key = this.keyFactory.CreateIncompleteKey(),
            // other properites...
            ["subjects"] = new ArrayValue(keyArray)
        };

【问题讨论】:

    标签: c# google-app-engine asp.net-core google-cloud-datastore


    【解决方案1】:

    与关系数据库中的方式相同。您只需创建额外的多对多关系表。 https://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561

    另一种选择是双面指针。在这种情况下,您需要在每个连接的实体中存储外键数组。在每个实体删除或连接更新时,您需要从双方更新此列表。

    我更喜欢使用第一种方法,因为它更容易,但在某些情况下您可能会使用第二种方法。

    【讨论】:

    • 感谢您的回答,但是,我认为您误解了我最初的问题。我不需要刷新关于外键和数据库设计的概念。 Google Datastore 的 Python SKD 包括一种定义这种关系的方法……但是,根据我的发现; .NET 库没有。因此,我正在寻找要使用的对象/创建上述对象的正确方法。
    • @rhys_stubbs,好吧,我的错。但是,你能分享一下你在哪里找到关于 Python 的例子的链接吗?因为 Datastore 是 NoSQL 数据库,并且提供关系映射的方式是特定于客户端库的,所以 .NET 库可能无法像 Python 那样支持它们。我想查看您所说的 Python 文档,以确保我们在同一页面上。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-10
    • 1970-01-01
    • 1970-01-01
    • 2017-08-25
    • 1970-01-01
    相关资源
    最近更新 更多