2014-02-01 5 views
0

Я пытаюсь выяснить лучший (или, скорее, самый практичный/эффективный) способ сделать что-то в моем приложении rails. В основном то, что у меня есть, - это область, где пользователь должен ввести некоторую информацию в нескольких полях формы, в которых у меня сейчас есть столбцы БД для (например, дохода).Идентификация, где поставить контроллер против логики модели

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

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

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

ответ

1

Мои предпочтения магазин необработанные (или слегка дезинфицированные) данные только. Затем превратите нужные формулы в методы вашей модели или, возможно, библиотечные/вспомогательные функции, в зависимости от структуры вашего проекта в целом.

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

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

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