Structurer des données

Lorsque vous structurez vos données dans Firestore, plusieurs options s'offrent à vous :

  • Documents
  • Collections multiples
  • Sous-collections au sein de documents

Examinez les avantages de chaque option en fonction de vos besoins. Ce guide présente quelques exemples de structures de données hiérarchiques.

Données imbriquées dans des documents

Vous pouvez imbriquer des objets complexes comme des tableaux ou des cartes au sein de documents.

  • Avantages : Cette option est facile à mettre en œuvre et permet de simplifier la structure des données, si vous disposez de listes de données simples et fixes que vous souhaitez conserver dans vos documents.
  • Inconvénients : Cette option n'est pas aussi évolutive que les autres, en particulier si vos données s'étendent au fil du temps. Plus les listes s'allongent ou s'agrandissent, plus la taille du document s'accroît, ce qui peut ralentir la récupération des documents.
  • Exemple de cas d'utilisation Dans une application de chat, vous pouvez utiliser une liste imbriquée dans le profil pour stocker les trois derniers salons de discussion visités par un utilisateur.
  • alovelace
    •     name :
            first : "Ada"
            last : "Lovelace"
          born : 1815
          rooms :
            0 : "Software Chat"
            1 : "Famous Figures"
            2 : "Famous SWEs"

Sous-collections

Vous pouvez créer des collections dans des documents lorsque vous avez des données susceptibles de s'étendre au fil du temps.

  • Avantages : La taille du document parent reste stable à mesure que vos listes s'agrandissent. Vous bénéficiez également de l'ensemble des fonctionnalités de requête sur les sous-collections et vous pouvez envoyer des requêtes de groupe de collections sur plusieurs sous-collections.
  • Inconvénients : Les sous-collections sont difficiles à supprimer.
  • Exemple de cas d'utilisation Dans la même application de chat, vous pouvez créer des collections d'utilisateurs ou de messages dans les documents des salons de discussion.
  • science
    • software
      name : "software chat"
      • users
        • alovelace
              first : "Ada"
              last : "Lovelace"
        • sride
              first : "Sally"
              last : "Ride"


    • astrophysics

Collections au niveau racine

Créez des collections au niveau racine de votre base de données pour organiser des ensembles de données disparates.

  • Avantages : Les collections au niveau racine sont adaptées aux relations plusieurs à plusieurs et fournissent des requêtes performantes au sein de chaque collection.
  • Inconvénients : Organiser vos données de façon naturellement hiérarchique peut devenir de plus en plus complexe à mesure que votre base de données s'agrandit.
  • Exemple de cas d'utilisation Dans la même application de chat, vous pouvez créer une collection pour les utilisateurs et une autre pour les salons de discussion et les messages.
  • users
    • alovelace
          first : "Ada"
          last : "Lovelace"
          born : 1815
    • sride
          first : "Sally"
          last : "Ride"
          born : 1951
  • rooms
    • software
      • messages
        • message1
              from : "alovelace"
              content : "..."
        • message2
              from : "sride"
              content : "..."