Estructura datos

Recuerda que, cuando estructuras tus datos en Cloud 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 práctico. En esta guía se proporcionan algunas estructuras de ejemplo de datos jerárquicos.

Datos anidados en documentos

Dentro de los documentos puedes anidar objetos complejos, como arreglos o mapas.

  • 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, los documentos también crecen y se puede tardar más en recuperarlos.
  • ¿Cuál es un caso práctico 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.
  • class alovelace
    •     name :
            first : "Ada"       last : "Lovelace"     born : 1815     rooms :       0 : "Software Chat"       1 : "Famous Figures"       2 : "Famous SWEs"

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 podrás hacer consultas completas en las subcolecciones.
  • Limitaciones: No puedes borrar fácilmente las subcolecciones.
  • ¿Cuál es un caso práctico 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.
  • collections_bookmark science
    • class software
        name : "software chat"
      • collections_bookmark users
        • class alovelace
              first : "Ada"
              last : "Lovelace"
        • class sride
              first : "Sally"
              last : "Ride"`


    • class astrophysics

Colecciones a nivel de raíz

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

  • Ventajas: Las colecciones a nivel de raíz ofrecen la mayor flexibilidad y escalabilidad, junto con potentes capacidades de consulta dentro de cada colección.
  • Limitaciones: Cuando se obtienen datos que son naturalmente jerárquicos, este proceso puede volverse cada vez más complejo a medida que crece la base de datos.
  • ¿Cuál es un caso práctico posible? En la misma app de chat, por ejemplo, puedes crear una colección para usuarios y otra para salas y mensajes.
  • collections_bookmark users
    • class alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • class sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • collections_bookmark rooms
    • class software
      • collections_bookmark messages
        • class message1
              from : "alovelace"
              content : "..."
        • class message2
              from : "sride"
              content : "..."