Лучшая схема mongo db для хранения информации о пользователе

Вопрос: Скажем, мне нужно хранить в mongoDB некоторые данные (например, "состояние"), относящиеся к определенной учетной записи пользователя. Каков наилучший вариант для этого: Состояние коллекции: 1) {id: - это будет то же самое в коллекции Users, [state data]} 2) {id: - некоторый уникальный идентификатор для состояния, userId - id из коллекции пользователя, [данные состояния]} Итак, что

Вопрос:

Скажем, мне нужно хранить в mongoDB некоторые данные (например, “состояние”), относящиеся к определенной учетной записи пользователя.

Каков наилучший вариант для этого: Состояние коллекции:

1) {id: – это будет то же самое в коллекции Users, [state data]}

2) {id: – некоторый уникальный идентификатор для состояния, userId – id из коллекции пользователя, [данные состояния]}

Итак, что было бы лучшим дизайнерским решением?

Лучший ответ:

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

Подумайте о блогах и их комментариях, вам никогда не нужно будет получать комментарии только сами по себе, вы всегда получаете запись в блоге и связанные с ней комментарии.

EDIT: Некоторые соображения:

  1. Если эти списки, о которых вы говорите, не зависят друг от друга, и между списками каждого пользователя не должно быть ссылочной интеграции, тогда имеет смысл хранить их в коллекции пользователей

  2. Если вы считаете, что документ пользователя будет больше 16 МБ (текущий максимальный размер документа), вам может потребоваться разделить коллекции (т.е. Не хранить все данные в одном месте, сбор пользователей)

Оцените статью
Добавить комментарий