2014-09-18 3 views
0

Предполагая, что у меня есть данные учащихся средних школ по всей стране. Каждая информация в средней школе не связана друг с другом и также никогда не должна быть связана друг с другом (разделенная на части). Какой из них рекомендуется, если я использую MongoDB:Единая коллекция Наследование или несколько коллекций?

1) Создание единого сбора наследования со следующими атрибутами:

high_school_id, student_id, name, address

2) Создание нескольких коллекций (возможно тысячи) со следующими атрибутами:

student_id, name, address

название коллекции будет следовать формату school_data_<X>, где X является high_school_id. Таким образом, для запроса моя программа может динамически строить имя коллекции.

Я пришел из MySQL, PostgreSQL фона, где тысячи таблиц не являются общими (так что опция (1) имеет гораздо больше смысла). Как это происходит в MongoDB?

ответ

3

Я рекомендую вам использовать первый вариант, поскольку MongoDB имеет ограничение на количество коллекций. Подробнее об этом читайте docs.

Возможно, вы захотите рассмотреть третий вариант: создать коллекцию со студентами, где запись каждого ученика будет включать данные средней школы. В дублировании данных нет ничего плохого, вы не должны думать об этом в MongoDB, но вы должны думать о более удобном способе работы с данными.

Смежные вопросы