Firestore Query - отношения один ко многим - PullRequest
0 голосов
/ 27 августа 2018

Я собираюсь разработать мобильное приложение для Android и использовать Firebase в качестве бэкэнда. Я новичок в NoSql Firestore.

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

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

Является ли следующая структура приемлемой для моего требования?

Firestore-root
    |
    --- Topic (collections)
    |     |
    |     --- topicId (document)
    |            |
    |            --- topicId: "345"
    |            |
    |            --- title: "Topic Title"              
    |            |
    |            --- viewCount: 20
    |            |
    |            --- likeCount: 30
    |            |
    |            --- Posts (colletion)
    |            |     |
    |            |     --- postId
    |            |            |
    |            |            ---postId: "321"
    |            |            |
    |            |            ---Title: "My title"
    |            |            |
    |            |            --- Image: ' '
    |            |            |
    |            |            --- commentsCount: 1
    |            |            |
    |        |            --- comments (colletion)
    |            |          |
    |            |           --- commentId
    |            |                             |
    |            |                            ---commentId: "123"
    |            |                        |
    |            |                   ---comment: "My Comment"
    |            |                             |    
    |            --- likes (colletion)
    |            |     |
    |            |     --- likeId (document)
    |            |            |
    |            |            --- userId: true
    |            | 
    |         
    |
     --- Users (collections)
    |     |
    |     --- userId (document)
    |            |
    |            --- userId: "345"
    |            |
    |            --- name: "Test Name"              
    |            |
    |            --- followersCount: 20
    |            |
    |            --- followingCount: 30

1 Ответ

0 голосов
/ 27 августа 2018

Как краткий ответ, да, выглядит хорошо для меня для ваших конкретных требований. Я уже ответил на вопрос ранее сегодня, который почти такой же, как ваш, и который я предоставил аналогичную схему базы данных, как у вас уже есть. Но вы должны знать, что не существует идеального решения для структурирования базы данных Cloud Firestore. Лучшее решение - это решение, которое соответствует вашим потребностям и облегчает вашу работу. Но что касается этой структуры, я вижу, что вы можете легко запрашивать все необходимые данные, так что, по моему мнению, продолжайте.

...