recherche

Maison  >  Questions et réponses  >  le corps du texte

数据库设计 - mongodb 如何设计包含收支明细的数据库?

阿神阿神2768 Il y a quelques jours860

répondre à tous(1)je répondrai

  • 巴扎黑

    巴扎黑2017-04-21 11:21:13

    Idée intuitive :

    • Si une collection est utilisée, chaque document doit avoir un champ pour identifier si le type de document concerne les détails du revenu ou les détails de la pension alimentaire
    • Si deux collections sont utilisées, lors de l'affichage des détails des revenus et des dépenses, vous devez interroger la collecte des revenus et la collecte des dépenses séparément via deux requêtes, puis les fusionner pour l'affichage
    • ;

    Analysons en détail les exigences non spécifiques de votre question :

    • Pour une collection, chaque enregistrement de recettes et de dépenses est un document placé dans la collection. Quant aux différents types de données, le document est un schéma gratuit, il n'y a donc aucun problème de stockage des données, vous avez uniquement du mal avec les recettes ; et dépenses. La façon de traiter et d'afficher différents types de données nécessite que vous définissiez bien la structure des données et la composition des champs des détails des revenus et des dépenses. Pour l'interrogation, une collecte est très simple. Vous pouvez interroger en fonction du temps, puis afficher les résultats séparément selon le champ identifiant le type de revenus et de dépenses
    •  ;
    • Si vous la divisez en deux collections, ce n'est pas un problème de stocker différents types de données, car à ce stade, la collection est essentiellement constituée de deux tables différentes dans la base de données de relation, chacune contenant ses propres données. sans interférer les uns avec les autres ; pour les requêtes, c'est plus gênant. De manière générale, vous devez extraire les détails des revenus et des dépenses de mongodb deux fois en fonction du temps, puis fusionner et trier les deux par ordre chronologique. le temps, la charge de travail de tri est transférée de mongodb vers le côté application.

    Les deux options ont leurs propres avantages et inconvénients. Si la quantité de données dont vous disposez n'est pas très importante, il est recommandé d'utiliser la première option, qui est stockée dans une collection et est facile d'accès si la quantité de données est importante. est grand, vous pouvez adopter la deuxième option. Transférez la pression du côté de l'application. Après tout, l'expansion des applications est plus pratique que l'expansion de la base de données.

    Mon opinion personnelle est d'utiliser la première solution, qui est stockée dans une collection si la quantité de données n'est pas importante, il n'y a pas de pression si la quantité de données est importante, les détails des revenus et des dépenses de différentes périodes. les périodes peuvent être stockées plusieurs fois en fonction de l'heure. La collection, lorsqu'elle est affichée sur le frontal, est affichée en fonction des périodes. Dans ce cas, au fil du temps, il vous suffit d'augmenter la collection horizontalement et le code d'accès aux données n'a pas besoin d'être modifié lors de l'interrogation, il vous suffit de changer de collection en fonction de la période de requête, qui est. simple et efficace.

    répondre
    0
  • Annulerrépondre