У меня есть простой «вариант использования»: представьте, что я хочу клонировать приложение Facebook с помощью Xamarin и Azure.
Прочитав это: https://docs.microsoft.com/en-us/azure/cosmos-db/social-media-apps
Я заметил, что могу хранить свои данные в наборе коллекций / документов (SQL API).
Но когда мне приходится обрабатывать миллионы отношений, это не работает, мне приходится использовать базу данных Graph API!
Итак, для этого мне нужно создать базу данных в Azure, вот что я сейчас сделаю:
1 - Одна база данных Cosmos DB - с SQL API (коллекция) с: a) коллекцией для пользователя b) коллекцией для публикации
2 - Единая база данных Comos DB - с API-интерфейсом Gremlin (График) с: a) Графиком для управления отношениями между пользователем и публикацией (т. Е. Пользователем A, подобным публикации B)
Итак, база данных SQL API будет управлять всеми записями, а база данных Gremlin - всеми связями комплексов.
Итак, у меня есть несколько вопросов: 1) Мне действительно нужны 2 несвязанные базы данных? Или это плохой дизайн? Потому что каждый раз, когда я добавляю пользователя, мне нужно добавлять в коллекцию не только документ, но и вершину! Это двойное управление!
2) Когда я вставляю документ в коллекцию, он автоматически генерирует «id» с ключом GUID. Могу ли я использовать этот идентификатор в качестве ключа для моих вершин?
Может быть, у пользователя и публикации может быть один и тот же GUID? Итак, в моем графе я не знаю, является ли моя вершина пользователем или публикацией?
Есть ли другой способ справиться с этим?
Спасибо