Этот вопрос связан с проектированием архитектуры базы данных.
Допустим, у меня есть две коллекции MongoDB students
и colleges
Коллекция имя : students
Документы :
{
"id": "student_id",
"name": "Peter James",
// ...other fields...
},
{
"id": "student_id",
"name": "Steve James",
// ...other fields...
}
Коллекция имя : colleges
Документы :
{
"name": "New York University",
"id": "AAB-1",
"students": [
{
"id": "id of student from students collection",
// ...other fields...
},
{
"id": "id of student from students collection",
// ...other fields...
},
]
// ...other fields...
}
{
"name": "University Of Southern California",
"id": "AAB-2",
"students": [
{
"id": "id of student from students collection",
// ...other fields...
}
]
// ...other fields...
}
Допустим, у меня есть тысячи университетов, и в каждом университете может быть 100 тысяч студентов.
В случае нового присоединения student
к университету, скажем, New York University
, тогда я вставлю данные студента в коллекцию students
и обновлю коллекцию array students
из colleges
, добавивновый student id
сгенерированный в students
коллекции к нему.
Это правильный путь? Или я должен вставлять полный документ college
каждый раз, когда регистрируется новый студент.Пример
Коллекция Имя : colleges
Документы :
{
"name": "New York University",
"id": "AAB-1",
"student":{
"id": "student 1", // id of student from students collection
// ...other fields...
},
// ...other fields...
},
{
"name": "New York University",
"id": "AAB-1",
"student":{
"id": "student_2", // id of student from students collection
// ...other fields...
},
// ...other fields...
}
Пожалуйста, почувствуйтеВы можете поделиться своими идеями по разработке схемы базы данных такого типа в MongoDB.Также, пожалуйста, предложите новые идеи, укажите ошибки в этом schema design
, и если этот дизайн масштабируемый или нет?