当前位置:  开发笔记 > 编程语言 > 正文

在文档数据库中继承?

如何解决《在文档数据库中继承?》经验,为你挑选了2个好方法。

我想知道因为我搜索了pdf"[noSql]权威指南"和"开始[noSql]"的​​单词"继承"但我没有找到任何东西?我错过了什么吗?因为我正在使用hibernate和mysql进行tablePerHierarchy继承,在[noSql]中出于某种原因这是否已被弃用?

(用你喜欢的"不仅仅是sql"数据库替换[noSql])



1> Gates VP..:

我知道这个答案有点晚了,但是对于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使这很容易.只需从Collection中提取一个Document,它就会"神奇地"拥有所有相应的字段/属性.

但是,如果您有"数据对象"或"实体",则可以通过添加类型来简化您的生活.

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

这样可以更轻松地编写工厂类来加载对象.



2> Rsh..:

嗯,这是一个非常古老的问题,但是因为我在这里结束了,我想添加一个2017年的更新.
如果您使用猫鼬连接到MongoDB中你可能想看看鉴别:

鉴别器是一种模式继承机制.它们使您能够在同一个基础MongoDB集合之上拥有多个具有重叠模式的模型.

一开始文档对我来说有点模糊,这篇文章可能是一个更好的理解这个想法的地方.

推荐阅读
刘美娥94662
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有