Ответ 1
Я знаю, что этот ответ немного запоздал, но для MongoDB вы, вероятно, смотрите на что-то немного другое.
Mongo является схематичным, поэтому понятие "tablePerHierarchy" необязательно полезно.
Предположим, что
class A
property X
property Y
property Z
class B inherits from A
property W
В RDMS у вас, вероятно, будет что-то вроде этого
table A: columns X, Y, Z
table B: columns X, Y, Z, W
Но MongoDB не имеет схемы. Таким образом, вам не нужно структурировать данные таким образом. Вместо этого у вас будет "коллекция", содержащая все объекты (или "документы" ) типа A или B (или C...).
Таким образом, ваша коллекция будет представлять собой серию таких объектов:
{"_id":"1", "X":1, "Y":2, "Z":3}
{"_id":"2", "X":5, "Y":6, "Z":7, "W":6}
Вы заметите, что я храню объекты типа A рядом с объектами типа B. MongoDB делает это очень просто. Просто вытащите документ из коллекции, и он "волшебным образом" имеет все соответствующие поля/свойства.
Однако, если у вас есть "объекты данных" или "сущности", вы можете сделать вашу жизнь проще, добавив тип.
{"_id":"1", "type":"A", "X":1, "Y":2, "Z":3}
{"_id":"2", "type":"B", "X":5, "Y":6, "Z":7, "W":6}
Это упрощает запись класса factory для загрузки ваших объектов.