2012-07-06 92 views
1

我正在將我的應用程序的數據庫從MySQL遷移到NoSQL(MongoDB)。不過,我對如何構建MongoDB感到困惑。將數據庫結構從MySQL遷移到MongoDB

在我目前的MySQL設置中,我有兩個表,一個用於用戶,一個用於日曆。每個用戶和日曆都有唯一的ID。每個用戶條目都包含與該用戶關聯的日曆ID列表。每個日曆條目還包含創建它的用戶的ID。

我面臨的問題是我有兩種情況:對於登錄控制檯,我必須快速向用戶顯示他/她已創建的所有日曆;對於前端網站,我需要顯示其作者的所有可用日曆。

在MySQL中,我會使用JOIN來真正快速地查詢這些數據。我如何在MongoDB(或任何NoSQL數據庫)中實現相同的功能?

回答

2

你幾乎得出結論。只有兩個選項沒有連接。

  1. 非規範化(嵌入式用戶文檔中存儲日曆)
  2. 使單獨的查詢(第一負載用戶,則他的日曆)

這兩種方法各有利弊,其討論了多次(嘗試谷歌搜索「mongodb嵌入或參考」)

簡而言之:嵌入使讀取更快,引用爲您提供更豐富的查詢和更容易/更快的寫入。