Меня попросили сделать какую-то службу отчетов (регистрации). Сотрудник установил локально установленное веб-приложение (просто динамический веб-сайт, написанный на PHP) во многих компаниях. Это веб-приложение является своего рода опросом. Все данные сохраняются в локальной базе данных, но теперь требуется, чтобы эти данные (результат опроса) также отправлялись на центральный сервер после каждой отправки формы.
Существует четыре типа опросов. Они организовали это таким образом, что существует много проектов, и каждый проект может иметь только одну съемку каждого типа (STI здесь?), И опрос принадлежит одному проекту. Каждый опрос будет получать отчет из локального приложения, поэтому в нем будет много отчетов. Приложение Rails 3, которое регистрирует эти отчеты, должно как-то имитировать эту логику. Первый вопрос: имеет ли эта структура AR смысл для вас?
Project-1--------1-Survey-1-------*-Report
Project
has_one :survey
has_many :reports, :through => :survey
Survey
belongs_to :project
has_many :reports
Report
belongs_to :survey
Второй вопрос касается наличия нескольких таблиц для одной модели AR. Если все данные будут сохранены в таблице reports
, таблица очень быстро станет огромной, и через некоторое время могут возникнуть проблемы с эффективными запросами к отчетам, относящимся к конкретному опросу. Может быть, было бы лучше иметь отдельные таблицы для каждого опроса? Как reports_<survey_id>
. Возможно ли это?
Кроме того, я как-то вынужден использовать MySQL, но если есть другое, гораздо лучшее решение для этого, я мог бы попытаться протолкнуть его.
Если вы все еще здесь, спасибо, что прочитали это:)