Stratégies de dénormalisation et de duplication des données
Modélisez les données de la base de données en temps réel pour accélérer les lectures en les dupliquant délibérément, en privilégiant des structures dénormalisées plutôt que des jointures et en maintenant les copies cohérentes lors de l’écriture.
Stratégies de dénormalisation et de duplication des données est une leçon Firebase Auth & Realtime Database Apps gratuite sur CoddyKit. Ceci est la leçon 4 sur 4. Tu peux lire la leçon complète ci-dessous gratuitement — puis la pratiquer en direct dans le navigateur avec un éditeur de code intégré et un tuteur IA 24/7. Elle fait partie du parcours d'apprentissage Firebase Auth & Realtime Database Apps, et ta progression se synchronise sur le web et l'application CoddyKit. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.
Certaines parties de cette leçon n'ont pas encore été traduites et s'affichent en anglais.
NoSQL Thinking
Realtime Database has no joins. Instead of normalizing data like a relational schema, you shape data around how you read it. This often means storing the same value in more than one place.
This deliberate redundancy is called denormalization.
The Cost of Joins
In a normalized model, showing a post with its author name would require reading the post, then reading the user node separately for every post. That is many round-trips and slow lists.
Duplicating for Reads
Instead, copy the small bits you display alongside the post. Now one read renders the whole feed item.
{
"posts": {
"p1": {
"text": "Hello",
"authorId": "u9",
"authorName": "Alice",
"authorAvatar": "a9.png"
}
}
}What to Duplicate
Duplicate only the fields you actually display in lists, not entire records.
- Names, avatars, titles: good candidates
- Large or sensitive fields: keep them in one place
- Rarely-changing data: safest to copy
The Consistency Trade-Off
The cost of duplication is keeping copies in sync. If Alice renames herself, every copy of authorName must update. You trade write complexity for read speed.
Multi-Path Updates Keep Copies in Sync
Update all copies atomically with a single multi-path write so no copy is left stale.
import { getDatabase, ref, update } from 'firebase/database';
const updates = {};
updates['/users/u9/name'] = 'Alice B.';
updates['/posts/p1/authorName'] = 'Alice B.';
await update(ref(getDatabase()), updates);Index Tables
Another denormalization pattern is the index node: a lookup mapping that lets you find related items without scanning. Here we map a user to their post IDs.
{
"userPosts": {
"u9": { "p1": true, "p7": true }
}
}Avoiding Deep Nesting
Reading a node downloads everything beneath it. Keep your tree shallow so a read does not pull in unrelated children. Split large nested structures into sibling top-level nodes.
When NOT to Denormalize
Denormalization is not always right. Avoid it when:
- The duplicated field changes very frequently
- There are many copies to keep consistent
- The data is large or rarely read together
In those cases, store once and read separately.
Validating Duplicated Data
Use Security Rules .validate to keep duplicated fields trustworthy, for example ensuring an authorName copy is always a non-empty string.
{
"posts": {
"$id": {
"authorName": { ".validate": "newData.isString() && newData.val().length > 0" }
}
}
}Designing for Your Queries
The golden rule: structure data around your most common reads. Write the queries your app needs first, then shape (and duplicate) data so each one is a single, shallow read.
Quick Check
Test your understanding of denormalization.
Recap
You can now model NoSQL data for speed.
- Denormalize by duplicating displayed fields
- Keep copies in sync with multi-path updates
- Use index nodes for relationships
- Keep the tree shallow to avoid over-fetching
- Structure data around your common queries
Apprends Firebase Auth & Realtime Database Apps avec un tuteur IA — gratuit
Écris et exécute du vrai code dans ton navigateur, obtiens de l'aide instantanée d'un tuteur IA disponible 24h/24, et reprends là où tu t'es arrêté sur le web ou dans l'app.
- Cours
- 11
- Leçons
- 44
Questions Fréquemment Posées
La leçon « Stratégies de dénormalisation et de duplication des données » est-elle gratuite ?
Oui — le texte complet de « Stratégies de dénormalisation et de duplication des données » est gratuit à lire ici sur le web. Pour la pratiquer de manière interactive (un éditeur de code intégré et un tuteur IA 24/7) et déverrouiller le reste du cours Firebase Auth & Realtime Database Apps, passe à CoddyKit PRO. Le cours Firebase Auth & Realtime Database Apps comprend 4 leçons au total.
Qu'est-ce que j'apprendrai dans « Stratégies de dénormalisation et de duplication des données » ?
Modélisez les données de la base de données en temps réel pour accélérer les lectures en les dupliquant délibérément, en privilégiant des structures dénormalisées plutôt que des jointures et en maint… Tu pratiques Firebase Auth & Realtime Database Apps avec du code pratique que tu exécutes directement dans le navigateur, et un tuteur IA 24/7 répond à tes questions au fur et à mesure que tu avances dans la leçon.
Dois-je avoir de l'expérience pour commencer Firebase Auth & Realtime Database Apps ?
Aucune expérience préalable n'est requise. Firebase Auth & Realtime Database Apps sur CoddyKit est structuré pour les débutants jusqu'aux apprenants avancés, donc tu peux commencer ici ou depuis le début et avancer à ton rythme. Ceci est la leçon 4 sur 4.
Combien de temps prend la leçon « Stratégies de dénormalisation et de duplication des données » ?
La plupart des leçons CoddyKit prennent environ 5–10 minutes. Chacune est courte et interactive, tu progresses régulièrement et tu repiques exactement où tu t'es arrêté sur le web et l'app.
Peux-tu écrire et exécuter du code dans cette leçon Firebase Auth & Realtime Database Apps ?
Oui. Chaque leçon Firebase Auth & Realtime Database Apps inclut un éditeur de code intégré, tu écris et exécutes du vrai code directement dans ton navigateur et tu reçois des retours IA instantanés — aucune configuration locale requise.
Toutes les leçons de ce cours
- Mises à jour propagées des données
- Opérations transactionnelles sur les données
- Compteurs et files atomiques
- Stratégies de dénormalisation et de duplication des données