2013-06-28 10 views
1

Я ищу для хранения сведений о профиле пользователей в моем приложении, таких как дата их рождения, страна, имя, фамилия, дата, с которой они присоединились, местоположение их profile_pic и т. Д. Я использую mongoose в приложении Expressjs. Я также буду хранить имя пользователя и хешированный пароль, и если они активируются с их адреса электронной почты. У меня есть несколько вопросов, которые я запутался и не совсем уверен, что делать?Хранение сведений о профиле пользователя

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

  • Вторая вещь - знать, должен ли я хранить детали профиля в виде столбцов в той же модели или создать другую модель для данных профиля, используя популяцию. Я думаю об этом, так как в этих деталях есть что-то, о чем мне нужно запросить. Они просто предназначены для чтения и записи. Я не запрашиваю эти параметры. Так что я думал, что иметь их в другой модели будет немного лучше, как всегда, я буду запрашивать только имя пользователя или пароль. Еще один вариант, который я считаю возможным, заключается в том, чтобы иметь их в подпакетах.

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

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

Благодаря

+0

Почему бы не попробовать и посмотреть, как это работает для вашего приложения? В MongoDB нет таблиц. Они называются коллекциями. Нет столбцов. Они называются полями. – WiredPrairie

ответ

1

Да, хранить все пользователи в одной модели мангустов, с activated поле. Таким образом, вы упрощаете некоторые вероятные запросы к базе данных, такие как получение списка всех ваших пользователей (активированных или нет) или проверка того, было ли выполнено имя пользователя.

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

+0

Спасибо за ваше мнение. –

+0

И вы считаете, что мне не следует получать данные этого профиля в другую модель? –

+1

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