国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

nosql - mongodb如何設(shè)計(jì)schema
PHP中文網(wǎng)
PHP中文網(wǎng) 2017-04-21 10:57:19
0
3
1105

我們都知道m(xù)ongodb是一種麵向文檔的數(shù)據(jù)庫(kù),但是它的靈活性並不意味著你不需要對(duì)其進(jìn)行結(jié)構(gòu)設(shè)計(jì),在代碼實(shí)施之前進(jìn)行結(jié)構(gòu)設(shè)計(jì)是十分必要的。

但是這樣問(wèn)題就來(lái)了,目前我們用的幾乎所有的數(shù)據(jù)庫(kù)設(shè)計(jì)工具都無(wú)法表現(xiàn)出mongodb這種麵向文檔的數(shù)據(jù)結(jié)構(gòu),那麼我們?cè)谧鲈O(shè)計(jì)的時(shí)候怎麼樣把我們的結(jié)構(gòu)清晰的展現(xiàn)給別人呢,我可不想用ps一個(gè)一個(gè)去畫框圖。

PHP中文網(wǎng)
PHP中文網(wǎng)

認(rèn)證高級(jí)PHP講師

全部回覆(3)
巴扎黑

其實(shí)官網(wǎng)的這篇設(shè)計(jì)哲學(xué)還是很不錯(cuò)的(http://www.mongodb.org/display/DOCS/S...)
MongoDB與傳統(tǒng)SQL schema設(shè)計(jì)上最大的差別就是關(guān)於模型關(guān)係用什麼方法表示比較好(在MongoDB裡即可以用Link,又可以用Embedded)

簡(jiǎn)單總結(jié)下:

  1. FirstClass (如「User」這種) 應(yīng)該用獨(dú)立的Collection
  2. "條目類型"的,應(yīng)該 embedded
  3. 兩個(gè)模型之間如果是包含關(guān)係,用 embedded
  4. 多對(duì)多關(guān)係,用 link(類似sql裡面的foregin key)
  5. 如果一個(gè)模型,其可能存的物件很少,那麼就用獨(dú)立的collection,這樣有助於mongodb server做快取
  6. embedded方式不利於做複雜的關(guān)聯(lián),複雜的查詢
  7. embedded方式性能很有優(yōu)勢(shì),如果你有「性能」方面的要求,可以考慮用embbed
伊謝爾倫

我還是習(xí)慣吧mongodb當(dāng)普通db看待,把collection看成表,每個(gè)collection裡的資料結(jié)構(gòu)保持一致。
不知道這樣是否合理,至少這樣讓我思路比較清晰。

Peter_Zhu

NoSQL有獨(dú)特的設(shè)計(jì)哲學(xué),建議不要受RDB思維影響。
另外推薦一篇文章看看:
MongoDB記錄映射Schema極度自由的Java Entity

最新下載
更多>
網(wǎng)站特效
網(wǎng)站源碼
網(wǎng)站素材
前端模板