nosql - mongodb如何設計schema
PHP中文网
PHP中文网 2017-04-21 10:57:19
0
3
960

我們都知道mongodb是一種麵向文檔的數據庫,但是它的靈活性並不意味著你不需要對其進行結構設計,在代碼實施之前進行結構設計是十分必要的。

但是這樣問題就來了,目前我們用的幾乎所有的數據庫設計工具都無法表現出mongodb這種麵向文檔的數據結構,那麼我們在做設計的時候怎麼樣把我們的結構清晰的展現給別人呢,我可不想用ps一個一個去畫框圖。

PHP中文网
PHP中文网

认证高级PHP讲师

全部回覆(3)
巴扎黑

其實官網的這篇設計哲學還是很不錯的(http://www.mongodb.org/display/DOCS/S...)
MongoDB與傳統SQL schema設計上最大的差別就是關於模型關係用什麼方法表示比較好(在MongoDB裡即可以用Link,又可以用Embedded)

簡單總結下:

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

我還是習慣吧mongodb當普通db看待,把collection看成表,每個collection裡的資料結構保持一致。
不知道這樣是否合理,至少這樣讓我思路比較清晰。

Peter_Zhu

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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板