Каков наиболее эффективный способ хранения тегов в Firestore? - PullRequest
0 голосов
/ 17 января 2019

В NoSQL Firestore нет таблицы, как лучше всего пометить теги, просто храните несколько тегов в массиве?

1 Ответ

0 голосов
/ 17 января 2019

В NoSQL Firestore нет таблицы.

Правильно, база данных в формате JSON.

Что будет лучшим способом пометкипросто хранить несколько тегов в массиве?

В зависимости от варианта использования вашего приложения, вы можете выбрать один из двух подходов.Если ваши теги имеют тип String, вы можете хранить эти буквенные строки в массиве.Это будет первый подход, и схема базы данных может выглядеть следующим образом:

Firestore-root
    |
    --- questions (collections)
          |
          --- questionId (document)
                 |
                 --- questionId: "02cubnmO1wqyz6yKg571"
                 |
                 --- title: "Question Title"
                 |
                 --- tags ["History", "Geography"]

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

Если вам нужны дополнительные сведения о теге, второй подход заключается в создании объекта для каждого тега и сохранении объектов этого тега в коллекции.В документе с вопросом вам нужно будет хранить идентификаторы тегов только в массиве, как показано в следующей схеме:

Firestore-root
    |
    --- questions (collections)
    |     |
    |     --- questionId (document)
    |            |
    |            --- questionId: "02cubnmO1wqyz6yKg571"
    |            |
    |            --- title: "Question Title"
    |            |
    |            --- tags ["tagId", "tagId"]
    |
    --- tags (collections)
          |
          --- tagId (document)
          |     |
          |     --- tagId: "yR8iLzdBdylFkSzg1k4K"
          |     |
          |     --- tagName: "History"
          |     |
          |     --- //Other tag properties
          |
          --- tagId (document)
                |
                --- tagId: "tUjKPoq2dylFkSzg9cFg"
                |
                --- tagName: "Geography"
                |
                --- //Other tag properties
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...