MongoDB
 sql >> Base de données >  >> NoSQL >> MongoDB

Débutant MongoDB - normaliser ou ne pas normaliser ?

Essayez cette approche :

Déterminez quelle(s) entité(s) sont le(s) héros

Avec "héros", je veux dire l'entité ou les entités autour desquelles la base de données est centrée. Prenons votre exemple. Le héros de l'exemple immobilier est la maison*.

Déterminez les propriétaires

Passez en revue les autres entités, telles que le propriétaire, l'agence, les images et les avis, et demandez-vous s'il est judicieux de placer leurs informations avec la maison. Auriez-vous une suppression en cascade sur l'une des clés étrangères de votre base de données relationnelle ? Si tel est le cas, cela implique la propriété.

Déterminez s'il est réellement important que les données soient dénormalisées

Vous aurez les détails de l'agence (et probablement du propriétaire) répartis sur plusieurs maisons. Est-ce important ?

Votre collection maison ressemblera probablement à ceci :

house: {
owner,
agency,
images[], // recommend references to GridFS here
reviews[] // you probably won't get too many of these for a single house
}

*En fait, c'est probablement l'annonce de la maison (puisque les maisons sont généralement annoncées sur un site immobilier et c'est probablement ce que vous êtes vraiment intéressé) alors considérez simplement que