База данных Azure - правила разработки схемы - PullRequest
0 голосов
/ 02 сентября 2018

У меня есть простой «вариант использования», представьте, что я хочу клонировать приложение 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? и так, на моем графике Я не знаю, являются ли мои вершины пользователем или публикацией?

Есть ли другой способ справиться с этим?

Спасибо

1 Ответ

0 голосов
/ 03 сентября 2018

Krysalid. Почему вы хотите создать 2 базы данных для вашей ситуации? Насколько я понимаю, вы можете выбрать SQL API или Graph API.

API SQL:

Создание пользовательской коллекции и коллекции пабов. Если вы хотите узнать, какие публикации нравятся пользователю, просто сохраните массив идентификаторов пабов в пользовательском документе.

{
  "user":"jay",
  "likePubArray":
     [{"pubId":"A"},{"pubId":"B"}]    
}

Если вы также хотите двунаправленный запрос, сохраните массив идентификаторов пользователей в документе публикации.

График API:

Создание пользовательской вершины и вершины публикации и добавление целевого свойства в вершине.

enter image description here

Надеюсь, это поможет вам.

...