В настоящее время я разрабатываю небольшое приложение для оценки книг, где пользователи могут оценивать и комментировать книги.Лучшая практика: Какую информацию следует хранить в моей базе данных?
Конечно у меня есть книга модель:
class Book < ActiveRecord::Base
has_many :ratings
end
и рейтинг модели:
class Rating < ActiveRecord::Base
belongs_to :book
end
«общая оценка стоимости» рейтингового объекта рассчитывается по разным рейтинговым категориям (например, читаемость , ...). Кроме того, общий рейтинг одной книги должен быть рассчитан по всем данным рейтингам.
Теперь вопрос, который я задаю себе: должен ли я рассчитать/запросить общий рейтинг для каждой книги? КАЖДЫЙ, кто-то посещает мою страницу, или я должен добавить поле в свою модель книги, где общий рейтинг (периодически) рассчитывается и сохраняется?
EDIT: «Расчет», который я использовал бы в этом случае, является простым средним определением.
Пример: Книга имеет около 200 оценок. Каждый рейтинг - это рейтинг из 10 категорий. Поэтому я хочу определить среднее значение одного рейтинга и в конце всех 200 рейтингов.
Вы можете подскажите нам немного больше о природе этого расчета? Если бы это было так просто, как числовое среднее, я бы предпочел рассчитывать его «на лету» в запросе, когда он запрашивается. –
@TimBiegeleisen Да, это было бы простое среднее определение. Обновлен мой вопрос – zarathustra