Maison > interface Web > js tutoriel > Comment maintenir la cohérence des données dans la dénormalisation de Firebase ?

Comment maintenir la cohérence des données dans la dénormalisation de Firebase ?

Linda Hamilton
Libérer: 2024-12-12 13:13:18
original
576 Les gens l'ont consulté

How to Maintain Data Consistency in Firebase Denormalization?

Maintenir la cohérence des données dans la dénormalisation de Firebase

Lors de l'écriture de données sur Firebase à plusieurs emplacements pour une récupération plus rapide, il est crucial de maintenir la cohérence des données dans tous emplacements. Voici deux approches pour y parvenir :

Écritures atomiques

Firebase fournit désormais un moyen d'effectuer des écritures atomiques sur plusieurs chemins simultanément. À l'aide de la méthode multipathWrites, vous pouvez mettre à jour plusieurs emplacements en une seule opération.

let updates = {}; // all paths to be updated and their new values
updates['users/'+uid+'/name'] = name;
var query = ref.child('messages').orderByChild('user').equalTo(uid);
query.once('value', function(snapshot) {
  snapshot.forEach(function(messageSnapshot) {
    updates['messages/'+messageSnapshot.key()+'/username'] = name;
  })
  ref.update(updates);
});
Copier après la connexion

Cohérence éventuelle

Cette approche implique la mise à jour asynchrone des données dupliquées. Tout d’abord, mettez à jour la source principale de données (par exemple, le profil de l’utilisateur). Ensuite, recherchez toutes les instances des données dupliquées (par exemple, les messages contenant le nom de l'utilisateur) et mettez-les à jour une par une.

ref.child('users').child(uid).update({ name: name });
var query = ref.child('messages').orderByChild('user').equalTo(uid);
query.once('value', function(snapshot) {
  snapshot.forEach(function(messageSnapshot) {
    messageSnapshot.update({ username: name });
  })
});
Copier après la connexion

Conseils pour la cohérence des données

  • Utiliser des références en lecture seule : Créer des références à des données dénormalisées à partir d'une source en lecture seule (par exemple, un ensemble de règles qui autorise uniquement les lectures) pour empêcher les écritures involontaires.
  • Surveiller les modifications des données : Écoutez les modifications apportées à la source principale de données et déclenchez les mises à jour des données dupliquées de manière asynchrone.
  • Évitez de vous fier uniquement aux données dénormalisées : Comprenez que les données dénormalisées ne sont pas toujours à jour, complétez-le donc par des requêtes sur la source de données principale si nécessaire.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal