Est-il préférable d'avoir un champ dans la base de données qui stocke le solde du compte du client ou d'utiliser des vues et des requêtes pour générer l'information ?
Réponses
Trop de publicités?Dans le cadre d'un projet sur lequel j'ai travaillé, nous avons stocké le solde actuel dans un champ, et toutes les transactions dans une autre table, mais en raison du niveau d'importance que ce projet avait pour que les données soient parfaites à 100% (ou mieux), nous avons également stocké un hachage du solde dans un autre champ et le hachage était comparé à chaque fois qu'il était appelé pour garantir l'intégrité, et s'il ne correspondait pas, il était recalculé à partir de la table des transactions, puis envoyé au département de support client pour examen.
Je pense que cela dépend de beaucoup de facteurs, combien de fois allez-vous accéder au solde, quelle est la complexité de le recalculer à chaque fois que vous en avez besoin. Quels sont les frais généraux liés à l'existence de vues, etc.
Sur la base des informations que vous avez fournies, je stockerai la valeur car recalculer la valeur à chaque fois peut être pénible.
"Ça dépend". Le plus souvent, vous voulez éviter les données dérivées. Cependant, il y a des cas où avoir le total dérivé est justifié.
Un exemple concret :
J'ai travaillé sur une application de base de données de crédit, où le solde était composé de plusieurs choses différentes, et de différentes règles de gestion dans le temps. Par exemple, le "solde" était en fait une somme de différents soldes provenant de différentes catégories, comme le capital, les frais, etc.
Au fur et à mesure que les transactions étaient comptabilisées, elles étaient affectées à différents compartiments en fonction de règles commerciales. Les frais allaient dans le compartiment des frais. Les achats, les crédits et les débits allaient dans la partie principale. Ces affectations et règles étaient susceptibles d'être modifiées au fil du temps.
Imaginez que vous puissiez interroger à la volée 100 000 soldes de clients alors que les règles de gestion évoluent au fil du temps. Il s'agit d'un cas concret où la valeur dérivée a un sens. Nous avons maintenu un ensemble d'algorithmes pour "remonter" le compte et reconstruire le solde chronologiquement à des fins d'audit et de vérification, mais ce n'était rien que vous voudriez faire pour de grands ensembles.
- Réponses précédentes
- Plus de réponses