【招商主管QQ958337】摩登5官网平台首页,指定招商主管QQ958337,提供摩登5官网注册首页,摩登5指定登录地址及招商主管政策,是一家专注科技大数据资讯平台。

摩登5指定主管MongoDB的数据建模

摩登5主管 摩登5主管 3个月前 (06-29) 32次浏览

摩登5指定主管958337

MongoDB是一种面向Document的NoSQL数据库,要是咱们照旧根据RDB的体例来思索MongoDB的数据建模,则不能有用地操纵MongoDB的上风;但是,咱们也不能由于Document的灵活性,就能够在设想之初放任自流。

适度的建模是无比有需要的,尤为关于相对于庞大的联系干系。由于在MongoDB中,处置这类联系干系既能够应用Link,也能够应用Embedded。

摩登5指定主管MongoDB的数据建模

咱们要评估一种决议,不能将摩登5指定主管958337与详细的上下文分裂开来做判定,那种纯真说A手艺要比B手艺好的做法,就像小孩子看卡通片里的人物只晓得说谁是大好人谁是坏人通常的稚子。天下上没有一种***sg新霸游戏至善的技能,关键仍是要联合场景来看运用是不是得法。

比方运用Embedded方法,就各有优缺点。举例来说,倘使咱们采取Embedded方法将Addresses作为Person工具内部的数sg新霸游戏组:

当咱们在查问Person的信息时,要获得摩登5指定主管958337内嵌的属性细节,咱们无需再实行屡次盘问。假使咱们改观一下范畴场景,须要开辟一个义务跟踪体系。假如咱们将Tasksg新霸游戏s的信息嵌入到Person工具中,当咱们面临如下需要:

  • 显现全部来日诰日到期的使命
  • 显现全部未完成的义务

采纳这类Embedded就不那末使人欢快了。

假如采取sg新霸游戏Link体例,状况就完整分歧了:

有得必有失,当咱们需求查问Person承当的Tasks时,采取这类体例,就必要采取application-level join体例施行两次查问。

这类建模方法摩登5代理注册带来另一种大概,就是本来Person->Tasks的one-to-N干系就能够变成N-to-N干系,由于一个Task能够被多个Person所具有。假如采纳Embedded体例,则会致使Task数据的冗余。

在文章 6 Rules of Thumb for MongoDB Schema Design中,作者将这类1对N联系实现的果断根据区分为三种模式:

  • one-to-few
  • one-to-many
  • one-to-squillions

但我以为该怎样实现联系,应当从Entity之间的范畴瓜葛来判定,咱们能够引入DDD的Aggregation设想观点作为建模的根据。简略来讲,假如利用Embedded,能够以为该Entity处于Aggregation边境以内,对外该当经过AggregationRoot来走访。文章 6 Rules of Thumb for MongoDB Schema Design的说法就是:

Will the entities on the “N” side of the One-to-N ever need to standalone?

假如是Stand Alone,就意味着该Entity能够成为一个自力的Aggregation,而后再经过ID与别的一个Aggregate联系。

在SegmentFausg新霸游戏lt上则有人做了云云总结:

  • Firsg新霸游戏stClass (好比“User”这类) 应当用自力的Collection
  • “条款范例”的,该当 embedded
  • 两个模子之间要是是包罗干系,用 embedded
  • 多对多瓜葛,用 link(相似sql内里的foregin key)
  • 假如一个模子,摩登5指定主管958337大概存的工具很少,那末就用自力的collection,如许有助于mongodb server做缓存
  • embedded体例不利于做繁杂的联系,庞大的盘问
  • embedded体例机能很有上风,若是你有“机能”方面的请求,能够思考用embbed

【本文为51CTO专栏作者“张逸sg新霸游戏”原创稿件,转载请接洽原作者】

戳这里,看该作者更多好文

【编辑举荐】

点赞 上一篇:sg新霸游戏大数据计较架构Hadoop、Spark和Storm 三者
下一篇:没有了


摩登5注册首页_官网指定招商主管_科技网
如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:摩登5指定主管MongoDB的数据建模
喜欢 (0)