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); });
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 }); }) });
Conseils pour la cohérence des données
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!