【问题标题】:Database structure using MongoDb使用 MongoDb 的数据库结构
【发布时间】:2014-02-06 13:40:26
【问题描述】:

我计划使用 mongoDB 而不是 RDBMS 重新构建我的数据库。

我的数据库中目前有一些表。我只是想知道..每个表都是一个 mongodb 文件?

我的意思是,带有用户/电子邮件/密码的表格会是这样吗?

{list_of_users: [{email: "value", pass: "value", user: "value"}, {...}, ...]}

我也想知道......这些包含数组的文档有存储限制,或者可以像数据库中的普通表一样使用,我可以添加任意数量的“行”(数组的元素)吗?

提前致谢!!

【问题讨论】:

  • 不,您不太可能让一个文档代表一个表格。更有可能的是,一个文档代表一行。但是,请注意 MongoDd 中没有连接,这使得翻译传统的 RDBMS 应用程序很困难。

标签: mysql node.js mongodb rdbms database


【解决方案1】:

首先提供一些很好的参考供您浏览:

现在基本上总结一下你的问题。

您通常会围绕实体设计 MongoDB 集合(想想 UML 中的 ERD 图)。这意味着它实际上与设计关系模型非常相似,只是您将嵌套某些通常会在 SQL 平面结构中分离出来的明细表。

一个很好的例子是“多对多”关系。通常这会被拆分成一个规范化的表,但在 MongoDB 的情况下,它会嵌套在父关系文档中。

举个例子:“一个用户可以管理多个视频,一个视频可以被多个用户管理”

这种关系通常通过将managers 字段嵌入到包含用户ID 列表的video 文档中来设计。

我可以添加任意数量的“行”(数组的元素)吗?

不,BSON 文档的最大大小为 16MB。

【讨论】:

  • 谢谢,但我没有得到.. 如果 bson 文档的最大大小为 16mb,我如何存储我的所有用户?
  • @Morrisda 每个文档一个用户
  • 谢谢你,但我还是不能理解一件事。假设在用户表中我想发布每个用户的帖子(我不这样做,但这只是一个例子)我将有一个文档,如:{username: "value", pass: "value", " email": value, posts: {..}} 所以每次用户发布帖子我都会放在那里。但是当这个文件达到 16mb 时呢?这就是我想知道的!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2022-01-11
  • 2020-03-20
  • 1970-01-01
  • 2013-08-20
  • 1970-01-01
  • 2023-04-06
  • 2015-12-20
相关资源
最近更新 更多