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

我们都知道mongodb是一种面向文档的数据库,但是它的灵活性并不意味着你不需要对其进行结构设计,在代码实施之前进行结构设计是十分必要的。

但是这样问题就来了,目前我们用的几乎所有的数据库设计工具都无法表现出mongodb这种面向文档的数据结构,那么我们在做设计的时候怎么样把我们的结构清晰的展现给别人呢,我可不想用ps一个一个去画框图。

PHP中文网
PHP中文网

认证高级PHP讲师

Antworte allen(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

Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage