nosql - mongodb如何设计schema
PHP中文网
PHP中文网 2017-04-21 10:57:19
0
3
910

我们都知道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

熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!