Когда записывать пользовательский ввод в базу данных? - PullRequest
0 голосов
/ 16 апреля 2020

Более новый разработчик здесь. Я создаю Nodejs приложение с MongoDB. Когда вы записываете пользовательские данные в базу данных? Это сразу, когда они хотят выполнить действие CRUD? Или вы ждете, пока они завершат сеанс, чтобы обновить свои изменения (покажет им «поддельное» обновленное представление в это время)? Я бы подумал, что запись в базу данных каждый раз была бы не идеальной, но я также не хотел бы, чтобы пользователь думал, что его изменения были сохранены в базе данных, и тогда возникает некоторая ошибка, когда это на самом деле не происходит. Как это происходит в реальном мире?

Ответы [ 2 ]

0 голосов
/ 16 апреля 2020

Это то, что известно в «реальном мире» (как вы упоминали) как проектное решение . Это не то, для чего есть что-то, даже отдаленно напоминающее эмпирическое правило или жесткое правило.

Вместо этого важно рассмотреть все возможные факторы, относящиеся к этому дизайну, до его принятия:

  • Ожидания пользователей - будут ли пользователи этого приложения ожидать, что их данные будут сохранены немедленно ? Когда они нажимают кнопку «Сохранить»? Ожидают ли они, что их входные данные будут уничтожены?
  • Хранение данных - существуют ли требования для сохранения ввода пользователя до его официального представления? (Это полезно в приложениях, для которых
  • Инфраструктура - может ли базовая инфраструктура справиться с увеличенной рабочей нагрузкой? Когда масштабируется это приложение, требования инфраструктуры будут превышать емкость?
  • Стоимость / выгода - вызовет ли добавление этой функции время разработки / тестирования, которое превысит допустимые уровни для выгоды, которую предоставляет эта функция?

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

0 голосов
/ 16 апреля 2020

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

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

Можно утверждать, что вы можете поддерживать current state своего приложения, но в случае бэкэнд-кода база данных всегда должна быть вашим единственным источником правды.

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