Как смоделировать отношения «многие ко многим» в Google Datastore C # .NET - PullRequest
0 голосов
/ 24 октября 2018

Мне нужно смоделировать отношения «один ко многим» или «многие ко многим» в 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)
        };

1 Ответ

0 голосов
/ 29 октября 2018

Так же, как в реляционной базе данных.Вы просто создаете дополнительную многотельную реляционную таблицу.https://code.tutsplus.com/articles/sql-for-beginners-part-3-database-relationships--net-8561

Другим вариантом могут быть двухсторонние указатели.В этом случае вам нужно хранить массив внешних ключей в каждой подключенной сущности.При каждом удалении объекта или обновлении соединения вам необходимо обновлять эти списки с обеих сторон.

Я бы предпочел использовать первый подход, так как он намного проще, но в некоторых ситуациях вы можете работать со вторым.один.

...