2011-08-26 39 views
0

我第一次想看到其他數據庫,而不是SQL Server用於我的開發。從SQL Server到MONGODB:設計問題

對我的項目來說,MongoDB是一個很好的選擇。

難以理解的是MONGODB對我的「設計」。

用戶(表)

Id 
Name 
Address 

朋友(表)

IdUser 
IdFriends 

有了這個SQL表,我想允許用戶成爲Facebook等其他用戶的好友。

哪個是MongoDB的最佳設計?

回答

3

考慮嵌套的朋友IDS內部User文件:

{ 
    _id: 7, 
    name: "Johnny", 
    address: "Acme St.", 
    friends: [8, 9, 15] 
} 

一方面你不需要加入去取朋友(至少IDS),因爲一切都被嵌套在一個單一的文件中和架構看起來更愉快。另一方面 - 爲了取得真正的朋友,你遇到了N + 1問題。然而,通過id獲取相當便宜,也考慮緩存。

+0

好吧,假設我有1.000或10.000朋友? – Dada

+0

MongoDB文檔大小限制爲16 MiB([SERVER-431](https://jira.mongodb.org/browse/SERVER-431)),還有一些操作可以處理嵌套數組而無需獲取整個數組本身。 –