У меня есть простой «вариант использования», представьте, что я хочу клонировать приложение 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 (коллекция) с:
а) Коллекция для пользователя
б) Сборник для публикации
2 - Одна база данных Comos DB - с Gremlin API (Graph) с:
a) График для управления отношениями между пользователем и публикацией (т. е. пользователь A, как публикация B)
Итак, база данных SQL API будет управлять всеми записями, а база данных Gremlin - для
все комплексы отношений.
Итак, у меня есть несколько вопросов:
1) Мне действительно нужны 2 неподключенные базы данных? Или это плохой дизайн?
Потому что каждый раз, когда я добавляю пользователя, мне нужно добавить документ в коллекцию,
но и вершина! Это двойное управление!
2) Когда я вставляю документ в коллекцию, он генерирует «id» с
GUID ключ автоматически. Могу ли я использовать этот идентификатор в качестве ключа для моих вершин?
Может быть, пользователь и публикация могут иметь одинаковый GUID? и так, на моем графике
Я не знаю, являются ли мои вершины пользователем или публикацией?
Есть ли другой способ справиться с этим?
Спасибо