我將使用MongoDB製作學生管理系統。我將爲學生準備一張桌子,另一張準備出席記錄。我可以在考勤表中有鑰匙到達學生表,如下圖所示?怎麼樣?可以使用MongoDB創建關係數據庫嗎?
17
A
回答
26
MongoDB的背後的想法是,以消除(或至少最小化)的關係數據。您是否考慮將考勤數據直接嵌入每個學生記錄?這實際上是MongoDB的首選設計模式,可以帶來更好的性能和可伸縮性。
如果您確實需要高度關係和規範化的數據,您可能需要重新考慮使用MongoDB。
17
答案取決於你打算如何使用數據。你真的有2個選擇,嵌入考勤表,或鏈接它。有關這些方法的更多詳細信息,請參閱:http://www.mongodb.org/display/DOCS/Schema+Design
對於常見用例,您可能會嵌入此特定集合,因此每個學生記錄都會嵌入一個「考勤」表。這是可行的,因爲出勤記錄不太可能在學生之間共享,並且檢索出勤數據也可能需要學生信息。檢索考勤數據將如此簡單:
db.student.find({ login : "sean" })
{
login : "sean",
first : "Sean",
last : "Hodges",
attendance : [
{ class : "Maths", when : Date("2011-09-19T04:00:10.112Z") },
{ class : "Science", when : Date("2011-09-20T14:36:06.958Z") }
]
}
+0
謝謝,我已經開始閱讀Schema Design。 –
0
是的。沒有硬性規定。您必須查看嵌入或引用數據的優缺點。這個視頻肯定會有幫助(https://www.youtube.com/watch?v=-o_VGpJP-Q0&t=21s)。在您的示例中,電話號碼屬性應位於同一張表上(在文檔數據庫中),因爲人員的電話號碼很少發生更改。
相關問題
- 1. SQLAlchemy可以自動從數據庫模式創建關係嗎?
- 2. 我可以在MongoDB中存儲關係數據庫結構嗎
- 3. 使用AngularFire,可以創建關係型數據庫嗎?或者訪問UniqueIDs?
- 4. 創建關係數據庫
- 5. 我可以爲count創建關係嗎?
- 6. 可以在關係數據庫中使用循環外鍵依賴關係嗎?
- 7. MongoDB數據庫關係
- 8. 爲數據源創建新的QueryBuilder表達式時可以使用關係嗎?
- 9. MongoDB不適用於關係數據嗎?
- 10. 使用mongodb創建數據庫node.js
- 11. 可以使用存儲過程創建數據庫嗎?
- 12. 我可以使用ID創建OneToOne關係嗎?
- 13. MongoDB未經授權的用戶可以創建數據庫
- 14. readAnyDatabase用戶可以在mongodb上創建數據庫
- 15. 我們可以使用Ember數據使用多態關係嗎?
- 16. 創建關係數據庫表
- 17. 正確創建關係數據庫
- 18. 使用UML建模數據庫:關係
- 19. 用C創建的GDBM數據庫可以用Python打開嗎?
- 20. 我可以使用rails 4中的一個數據庫查詢創建多個關聯的數據庫行嗎?
- 21. 可以將ORM +關係數據庫視爲對象關係數據庫管理系統嗎?
- 22. 我可以使用我的關係數據庫表格圖來創建UML類圖嗎?
- 23. 麻煩創建MongoDB的MongoDB數據庫
- 24. 非Linux的postgresql用戶可以創建數據庫嗎?
- 25. 關係數據丟失時可以使用Entity Framework嗎?
- 26. 使用關係數據庫
- 27. 如何使用Enterprise Architect和Oracle數據庫創建數據庫關係圖?
- 28. 從關係數據庫移動到mongodb
- 29. Laravel認證系統可以使用現有的數據庫嗎?
- 30. 關係數據庫建模
謝謝你的回答。我的教練給了我這個項目來和MongoDb一起做。所以我會從某處/某些人(比如你:)搜索一些信息),我會盡力去做。再次感謝你。 –
如果你是MongoDB的新手,他們的網站上有一個很酷的小教程:http://www.mongodb.org/(只需點擊「試試看」,然後在shell中輸入「tutorial」。) –
@MikeChristensen目前,這個建議不再有效。他們可能改變了他們的網站 – Kunok