İlk*_*ğlı 27 rdbms relational-database mongodb
我将使用MongoDB创建一个学生管理系统.我将为学生提供一张桌子,为出勤记录提供另一张桌子.我可以在考勤表中找到一张钥匙到达学生桌,如下图所示吗?怎么样?

Mik*_*sen 38
MongoDB背后的想法是消除(或至少最小化)关系数据.您是否考虑过直接将考勤数据嵌入到每个学生记录中?这实际上是MongoDB的首选设计模式,可以带来更好的性能和可伸缩性.
如果您确实需要高度关系和规范化的数据,您可能需要重新考虑使用MongoDB.
sea*_*ges 20
答案取决于您打算如何使用数据.您真的有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") }
]
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
30820 次 |
| 最近记录: |