такая структура:
Критерий -> Много подкритериев -> Много аспектов (каждый аспект имеет тип судейский или объективный) -> По каждому аспекту может быть проставлена оценка (просто цифра, например, от 1 до 5) для конкретного студента экспертом. Оценок по 3шт на каждый аспект. 3 это количество экспертов кто эти оценки ставил.
Задача сохранить полную историю ввода оценок (если вдруг оценку изменили, то предыдущую надо сохранить) для каждого эксперта. А каждому аспекту, типу аспекта, подкритерию и критерию проставить посчитанный результат по определенной формуле. Соответственно пересчет верхнеуровневых объектов должен происходить каждый раз, когда эксперт вздумал по какой-либо причине изменить оценку.
Как подобное лучше реализовать и не повесится с количеством запросов на вставку-логическое_удаление записей каждого объекта и всех его родителей?*
*динамически считать не вариант
Не сохранять каждый чих в базу. Делать в приложении, а сохранять в базу только конечный результат, когда судьи кончат работу (например, в виде один jsonb на одно выступление)
в принципе так и планируется, пока эксперты не введут все оценки, не будет обновление всех вышестоящих объектов
Обсуждают сегодня