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

héritage dans la base de données de documents ?

Je sais que cette réponse est un peu tardive, mais pour MongoDB, vous envisagez probablement quelque chose de légèrement différent.

Mongo est sans schéma, donc le concept de "tablePerHierarchy" n'est pas nécessairement utile.

Supposons ce qui suit

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

Dans un RDMS, vous auriez probablement quelque chose comme ça

table A: columns X, Y, Z
table B: columns X, Y, Z, W

Mais MongoDB n'a pas de schéma. Vous n'avez donc pas besoin de structurer les données de cette manière. A la place, vous auriez une "collection" contenant tous les objets (ou "documents") de type A ou B (ou C...).

Votre collection serait donc une série d'objets comme celui-ci :

{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

Vous remarquerez que je stocke des objets de type A juste à côté d'objets de type B. MongoDB rend cela très facile. Extrayez simplement un document de la collection et il possède "par magie" tous les champs/propriétés appropriés.

Cependant, si vous avez des "objets de données" ou des "entités", vous pouvez vous faciliter la vie en ajoutant un type.

{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

Cela facilite l'écriture d'une classe de fabrique pour charger vos objets.