MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

eredità nel database dei documenti?

So che questa risposta è un po' in ritardo, ma per MongoDB, probabilmente stai guardando qualcosa di leggermente diverso.

Mongo è senza schema, quindi il concetto di "tablePerHierarchy" non è necessariamente utile.

Assume quanto segue

class A
  property X
  property Y
  property Z

class B inherits from A
  property W

In un RDMS probabilmente avresti qualcosa del genere

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

Ma MongoDB non ha uno schema. Quindi non è necessario strutturare i dati in questo modo. Avresti invece una "raccolta" contenente tutti gli oggetti (o "documenti") di tipo A o B (o C...).

Quindi la tua collezione sarebbe una serie di oggetti come questo:

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

Noterai che sto archiviando oggetti di tipo A proprio accanto a oggetti di tipo B. MongoDB lo rende molto semplice. Basta estrarre un documento dalla raccolta e "magicamente" ha tutti i campi/proprietà appropriati.

Tuttavia, se hai "oggetti dati" o "entità", puoi semplificarti la vita aggiungendo un tipo.

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

Questo rende più facile scrivere una classe factory per caricare i tuoi oggetti.