2014-01-17 104 views
0

我打算使用mongoDB而不是RDBMS重新構建我的數據庫。使用MongoDb的數據庫結構

我目前在我的數據庫中有一些表。我只是想知道..每張桌子都會是一個mongodb文檔?

我的意思是,將用戶/電子郵件/密碼錶是這樣嗎?

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

,我也想知道...這些文件包括陣列具有存儲的限制或可用於就像在數據庫中常見的表,我可以添加的儘可能多的「行」(元素數組),因爲我想要?

預先感謝!!

+0

不,不太可能會有文件代表表格。更有可能的是,一份文件將代表一排。但是請注意,MongoDd中沒有任何連接,這使得很難轉換傳統的RDBMS應用程序。 – WiredPrairie

回答

1

首先一些很好的參考,爲您瀏覽:

現在基本上總結一下你的問題。

您通常會在實體周圍設計MongoDB集合(想象一下UML中的ERD圖)。這意味着它實際上與設計關係模型非常相似,除非您嵌套某些細節表,而這些表通常會在SQL平面結構中分離出來。

一個很好的例子是「多」關係。通常情況下,這將被分解成一個規範化的表,但在MongoDB的情況下,它將嵌套在父關係文檔中。

作爲一個例子:

這樣的關係通常會通過嵌入managers字段到含有列表video文件被設計「A用戶可以管理許多視頻和視頻可以被許多用戶管理」的用戶ID。

我可以根據需要添加儘可能多的「行」(數組的元素)?

不,BSON文檔的最大尺寸是16MB。

+0

謝謝,但我沒有得到..如果我的所有用戶,如果一個bson文檔的最大尺寸是16mb,我如何存儲? – Morrisda

+0

@Morrisda每個文檔一個用戶 – Sammaye

+0

謝謝你,但我仍然無法理解一件事。假設在用戶表中,我想把每個用戶的帖子(我不這樣做,但它只是一個例子)我會有一個文件,如: {username:「value」,pass:「value」 ,「email」:value,posts:{..}} 所以每次用戶發佈帖子我都會放在那裏。但是什麼時候這個文件達到16mb? 這就是我想知道的! – Morrisda