2017-09-03 6 views
1

Je commence à utiliser Firebase pour stocker des informations de données. J'ai appris qu'il est préférable de l'avoir dans une structure étroite au lieu d'une structure profonde.Noeuds linéaires Firebase

I ont la structure suivante:

MainDetail 
    -Kd92jd93kaod93 <----ID 
    -Kfirkd9rmtiepr 
    -.....More than 1 million more 

La question j'est que, j'ai plus d'un million de données et plus d'un million identifiants seront stockées dans une séquence linéaire sous chacun des noeuds principaux comme ci-dessus .

Est-ce une bonne approche pour avoir tous les identifiants dans un nœud? ou devrais-je le décomposer plus avant comme par date? Comme ...

01_MainDetail 
    -20170902 
     -Kd92jd93kaod93 
     -Kfirkd9rmtiepr 
     -.... 
    -20170901 
     -Kd92jd93rt4e3 
     -Kfer5hrmtiepr 
     -....  
    -.... 

Cela contredit ce que j'ai lu en ligne comme maintenant je ne suis pas le rendre étroit et ayant plusieurs enfants.

Quelle est la bonne approche quand j'ai beaucoup de données?

Répondre

1

Il n'y a pas de limite réaliste au nombre de nœuds enfants sous un nœud. Tout dépend de la façon dont vous voulez accéder à ces nœuds enfants. Plus précisément:

  1. L'interrogation de longues listes de données prendra toujours plus de temps que l'interrogation d'une liste de données plus courte.
  2. La lecture d'une liste de nœuds sera toujours plus rapide si l'interrogation de ces mêmes nœuds à partir d'une liste plus longue.

Voir ces réponses pour plus:

Il est souvent préférable de partitionner les données pour correspondre à la façon dont vous voulez y accéder. La deuxième structure de données que vous montrez en est un exemple, car elle vous permet d'accéder aux nœuds à une date spécifique sans avoir à les rechercher.

1

La bonne approche consiste à conserver les données organisées comme vous l'avez dit dans des blocs de dates sous le nœud parent.

Cette approche ne sera pas une source de problèmes pour vous.