Масштабирующая структура Firestore - PullRequest
0 голосов
/ 25 января 2019

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

   {
      "projects": {                        //collection
        "project_uid": {                   //document
          "name": "some_name",            
          "some_url": "some_url",
          "createdAt" : 1548418304
        },
        "project_uid1": {                  //document
          "name": "some_name",
          "some_url": "some_url",
          "createdAt" : 1548418304
        }
      },
      "subrojects": {                       //collection
        "subroject_uid": {                  //document
          "thread_uid": "some_id",
          "title": "some_title",
          "content": "some_content"
        },
        "subroject_uid1": {                 //document
          "thread_uid": "thread_uid1",
          "title": "some_title",
          "content": "some_content"
        },
        "subroject_uid2": {                 //document
          "thread_uid": "thread_uid1",
          "title": "some_title",
          "content": "some_content"
        }
      }
    }

Или это имеет больше смысла с параллельными коллекциями (если это даже работает)?

   {
      "projects": {                        //collection
        "project_uid": {                   //document
          "name": "some_name",            
          "some_url": "some_url",
          "createdAt" : 1548418304,
          "subcollection": {                   //collection
            "subproject_uid": {                  //document
              "title": "some_title",
              "content": "some_content"
            },
            "subproject_uid1": {                 //document
              "title": "some_title",
              "content": "some_content"
            }
          }
        },
        "project_uid2": {                  //document
          "name": "some_name",
          "some_url": "some_url",
          "createdAt" : 1548418304,
          "subcollection":{                   //collection
            "comment_uid2": {                 //document
              "title": "some_title",
              "content": "some_content"
            },
          }
        }
      }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...