2017-02-05 5 views
1

Я не уверен, если я должен использовать только встроенные документы для этого примера:дизайн модели данных mongodb - только встроенный документ?

  1. У меня есть базовая модель для пользователя
  2. Каждый пользователь имеет несколько страниц
  3. Каждая страница имеет несколько сеансов
  4. Каждая сессия имеет несколько действий

Так может выглядеть следующим образом:

user = { 
    'email': '[email protected]', 
    'pages': [ 
     { 
      'name': 'best page', 
      'sessions': [ 
       { 
       session_name: 'abc', 
       actions: [ 
        {abc: 'def'}, 
        {abc: 'def'} 
       ] 
       }, 

      ] 
     }, .. 
    ] 
}; 

В основном есть 3 вложенных массива. Данные сеансов будут использоваться только для чтения (без операции обновления). Я думал о том, чтобы сделать сеансы еще одной моделью со ссылкой на странице. Это хорошая идея?

ответ

0

У вас все в порядке с вашей архитектурой. Это случай one to many relationship. Вы должны сохранить Sessions data в nested form, как показано в вашем примере. Даже если вы хотите просто запросить данные сеанса, вам может понадобиться issue multiple queries to resolve the references в будущем. Таким образом, для лучшей практики вы не должны хранить данные сеанса отдельно. Для получения дополнительной информации см. Mongo: Model One-to-Many Relationships

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