sql >> Databáze >  >> NoSQL >> MongoDB

dědictví v databázi dokumentů?

Vím, že tato odpověď je trochu opožděná, ale pro MongoDB se pravděpodobně díváte na něco trochu jiného.

Mongo je bez schématu, takže koncept "tablePerHierarchy" není nutně užitečný.

Předpokládejme následující

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

V RDMS byste pravděpodobně měli něco takového

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

Ale MongoDB nemá schéma. Nemusíte tedy data strukturovat tímto způsobem. Místo toho byste měli "kolekci" obsahující všechny objekty (nebo "dokumenty") typu A nebo B (nebo C...).

Takže vaše sbírka by byla série objektů, jako je tento:

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

Všimnete si, že ukládám objekty typu A hned vedle objektů typu B. MongoDB to velmi usnadňuje. Stačí vytáhnout dokument ze sbírky a „magicky“ má všechna příslušná pole/vlastnosti.

Pokud však máte „datové objekty“ nebo „entity“, můžete si usnadnit život přidáním typu.

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

To usnadňuje psaní tovární třídy pro načítání vašich objektů.



  1. MongoDB konektor pro PHP:počítání dokumentů pro stránkování

  2. Podporuje Mongo-connector přidávání polí před vložením do Elasticsearch?

  3. Vložte DBObject do MongoDB pomocí Spring Data

  4. Jak získat více objektů JSON pomocí nodejs a mongoose?