MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

herança no banco de dados de documentos?


Eu sei que esta resposta está um pouco atrasada, mas para o MongoDB, você provavelmente está olhando para algo um pouco diferente.

O Mongo não tem esquema, então o conceito de "tablePerHierarchy" não é necessariamente útil.

Suponha o seguinte
class A
  property X
  property Y
  property Z

class B inherits from A
  property W

Em um RDMS você provavelmente teria algo assim
table A: columns X, Y, Z
table B: columns X, Y, Z, W

Mas o MongoDB não tem um esquema. Portanto, você não precisa estruturar os dados dessa maneira. Em vez disso, você teria uma "coleção" contendo todos os objetos (ou "documentos") do tipo A ou B (ou C...).

Então sua coleção seria uma série de objetos como este:
{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}

Você notará que estou armazenando objetos do tipo A bem ao lado de objetos do tipo B. O MongoDB torna isso muito fácil. Basta puxar um Documento da Coleção e ele "magicamente" tem todos os campos/propriedades apropriados.

No entanto, se você tiver "objetos de dados" ou "entidades", poderá facilitar sua vida adicionando um tipo.
{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}

Isso torna mais fácil escrever uma classe de fábrica para carregar seus objetos.