我知道这个答案有点晚了,但对于 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}
这使得编写用于加载对象的工厂类变得更加容易。