Estructura datos

Recuerda que, cuando estructuras tus datos en Firestore, puedes elegir entre diferentes opciones:

  • Documentos
  • Varias colecciones
  • Subcolecciones dentro de documentos

Ten en cuenta las ventajas de cada opción en relación con tu caso de uso. En esta guía, se proporcionan algunas estructuras de ejemplo de datos jerárquicos.

Datos anidados en documentos

Puedes anidar objetos complejos como arrays o mapas dentro de los documentos.

  • Ventajas: Si tienes listas simples y fijas de datos que deseas conservar en tus documentos, esto es fácil de configurar y optimiza tu estructura de datos.
  • Limitaciones: No es tan escalable como otras opciones, especialmente si tus datos se expanden con el tiempo. Con listas más grandes o en crecimiento, el documento también crece, lo que puede tener como resultado que los tiempos de recuperación de los documentos sean más lentos.
  • ¿Cuál es un caso de uso posible? En una app de chat, por ejemplo, puedes almacenar las 3 salas de chat que un usuario visitó recientemente como una lista anidada en su perfil.
  • alovelace
    • name :
      first : "Ada"
      last : "Lovelace"
      born : 1815
      salas :
      0 : "Software Chat"
      1 : "Famous Figures"

Subcolecciones

Puedes crear colecciones dentro de los documentos cuando tengas datos que podrían expandirse con el tiempo.

  • Ventajas: A medida que crecen las listas, el tamaño del documento principal no cambia. También obtienes capacidades completas de consulta en las subcolecciones y puedes emitir consultas de grupos de colecciones en todas las subcolecciones.
  • Limitaciones: No puedes borrar fácilmente las subcolecciones.
  • ¿Cuál es un caso de uso posible? En la misma app de chat, por ejemplo, puedes crear las colecciones de usuarios o mensajes dentro de los documentos de la sala de chat.
  • science
    • software
        name : "software chat"
      • users
        • alovelace
          first : “Ada”
          last : “Lovelace”
        • sride
              first : "Sally"
              last : "Ride"`


    • astrophysics
      • ...

Colecciones de nivel de raíz

Crea colecciones a nivel de raíz de la base de datos para organizar los conjuntos de datos dispares.

  • Ventajas: Las colecciones a nivel de raíz son buenas para las relaciones de varios a varios y proporcionan consultas eficaces dentro de cada colección.
  • Limitaciones: La obtención de los datos que son naturalmente jerárquicos puede llegar a ser cada vez más compleja a medida que crece tu base de datos.
  • ¿Cuál es un caso de uso posible? En la misma app de chat, por ejemplo, puedes crear una colección para usuarios y otra para salas y mensajes.
  • users
    • alovelace
      primero : "Ada"
      último : "Lovelace"
      nacido : 1815
    • sride
      primero : "Sally"
      último : "Ride"
      nacido : 1951
  • rooms
    • software
      • messages
        • message1
          de : "alovelace"
          contenido : "..."
        • message2
          de : "sride"
          contenido : "..."

Videos

Para obtener más información, consulta los siguientes videos: