自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

MongoDB之?dāng)?shù)據(jù)建模

數(shù)據(jù)庫 其他數(shù)據(jù)庫 MongoDB
MongoDB與關(guān)系型數(shù)據(jù)庫的建模還是有許多不同,因?yàn)镸ongoDB支持內(nèi)嵌對(duì)象和數(shù)組類型。MongoDB建模有兩種方式,一種是內(nèi)嵌(Embed),另一種是連接(Link)。那么何時(shí)Embed何時(shí)Link呢?那得看兩個(gè)實(shí)體之間的關(guān)系是什么類型。

 一對(duì)一的關(guān)系:Embed,比如用戶信息集合有Address字段,Address字段有省、市、縣三個(gè)字段。建模如下:

QQ截圖20120725190049

 

 

QQ截圖20120725185306

一對(duì)多關(guān)系:一篇文章有多條評(píng)論,為1對(duì)多關(guān)系

QQ截圖20120725185727QQ截圖20120725190617

由于MongoDB對(duì)單個(gè)文檔(document)有大小限制16M(高于v1.8),設(shè)計(jì)時(shí)也要將這個(gè)限制納入考慮中。

多對(duì)多關(guān)系:學(xué)生和課程是多對(duì)多的關(guān)系,一個(gè)學(xué)生可以選多門課程,一門課程有多名學(xué)生參與。

QQ截圖20120725190110

多對(duì)多使用了連接(Linking),連接是通過引用(References)來連接兩個(gè)集合。MongoDB References有兩種:一種是 手動(dòng)引用(Manual References),另一種是DBRefs。

Manual References:

QQ截圖20120725192451(user集合)

QQ截圖20120725192634(post集合)

紅框地方就是Manual References,如果想查詢一篇文章的作者信息,首先在post集合找出那篇文章,然后在user集合查找出用戶的全部信息。但是假如有這么一個(gè)場(chǎng)景:用戶可以對(duì)圖片,文章等各種資源評(píng)論,所有的評(píng)論都放在comment集合中,如果只是使用Manual References,就分不清楚評(píng)論到底是屬于哪類資源了,圖片?文章?。所以有了DBRef。

DBRef的形式:

{ $ref : <value>, $id : <value>, $db : <value> }

$ref:集合名稱;$id:引用的id;$db:數(shù)據(jù)庫名稱,可選參數(shù)。

可以看到DBRef的結(jié)構(gòu)比Manual References的復(fù)雜,占用的空間大,但是功能也強(qiáng)大,如果要跨數(shù)據(jù)庫連接,上面講的評(píng)論集合的例子,都得需要使用DBRef,MongoDB提供了函數(shù)來解析DBRef,不用像Manual References需要自己手動(dòng)寫兩次查詢。

QQ截圖20120725195916

關(guān)于MongoDB的數(shù)據(jù)建模MongoDB官網(wǎng)也給出了一些建議。這些建議都是提供了一些參考,實(shí)際建模需要根據(jù)具體的需求來分析,分析數(shù)據(jù)經(jīng)常會(huì)執(zhí)行哪些操作(排序,查找,修改)來選擇Embed和Link。

原文鏈接:http://www.cnblogs.com/alab/archive/2012/07/25/2608905.html

【編輯推薦】

  1. MongoDB 2.0 正式版發(fā)布
  2. MongoDB 2.0新功能逐個(gè)看之Compact Command
  3. 主流NoSQL數(shù)據(jù)庫全方位評(píng)測(cè)之MongoDB
  4. 教你如何利用MySQL學(xué)習(xí)MongoDB
  5. 在Windows環(huán)境下MongoDB搭建和簡(jiǎn)單操作

責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2017-02-05 14:59:18

MongoDB數(shù)據(jù)建模數(shù)據(jù)庫

2020-10-10 06:53:18

數(shù)據(jù)建模數(shù)據(jù)庫

2024-01-10 08:22:38

物聯(lián)網(wǎng)數(shù)據(jù)分析建模人工智能

2017-05-05 10:00:51

MongoDB查詢數(shù)據(jù)

2023-08-24 09:44:16

數(shù)據(jù)庫性能

2014-01-06 10:44:17

Angular數(shù)據(jù)

2011-09-14 15:30:00

MongoDB

2010-06-30 13:17:12

UML業(yè)務(wù)建模

2012-05-15 10:28:29

NoSQL數(shù)據(jù)庫建模技術(shù)

2010-06-30 14:46:49

UML類圖

2022-09-06 08:00:00

機(jī)器學(xué)習(xí)金融數(shù)據(jù)科學(xué)

2010-07-01 17:05:34

UML包圖

2022-03-01 17:16:16

數(shù)倉建模ID Mapping

2025-04-22 07:52:59

2012-05-15 11:03:22

NoSQL數(shù)據(jù)建模

2011-05-23 13:30:00

MySQLMongoDB

2011-06-14 09:09:13

NoSQLMongoDB

2016-05-10 10:43:02

2022-03-15 10:00:00

美團(tuán)數(shù)據(jù)治理

2011-10-13 10:18:50

設(shè)計(jì)數(shù)據(jù)庫
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)