Дизайн базы данных для учетной записи пользователя - PullRequest
0 голосов
/ 14 ноября 2018

Я строю платформу SaaS. Один пользователь может иметь только одну учетную запись (или учетную запись пользователя). Это означает, что один пользователь имеет электронную почту, пароль, баланс, план уровня.

Что меня смущает, так это то, что я должен отделить настройки учетной записи пользователя и данные уровня / баланса?

Должен ли я сделать это 2 отдельными моделями: Пользователь (электронная почта, пароль) и Учетная запись (баланс, уровень, идентификатор_пользователя)?

или сделать его одной моделью: UserAccount (электронная почта, пароль, баланс, уровень, идентификатор_пользователя)?

Я думал, что пользовательская модель не претерпит много изменений в структуре, поскольку она предназначена только для аутентификации. Но для учетной записи, возможно, в будущем произойдут некоторые изменения

Ответы [ 2 ]

0 голосов
/ 15 ноября 2018

В идеале нужно иметь две разные коллекции, но в вашем случае, когда вы имеете дело с MongoDB (NoSQL DB), вы должны сосредоточиться на денормализации.то есть, чтобы избежать большего количества коллекций и отношений.

Итак, имея одну модель: UserAccount (электронная почта, пароль, баланс, уровень, user_id) является идеальным выбором.

0 голосов
/ 15 ноября 2018

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

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