Когда ИТИ имеет смысл? Мы храним одну и ту же информацию для каждого типа, но используем ее по -разному

StackOverflow https://stackoverflow.com/questions/6823171

Вопрос

Так что я знаю, что STI - самая оскорбленная вещь в истории, но у меня есть случай, когда я думаю, что это может иметь смысл. Мое приложение анализирует кучу различных типов XML -файлов. Каждая модель файла хранит ту же информацию. Просто некоторая информация о том, с каким пользователем он связан, когда он был загружен и где он хранится на S3.

После того, как файл XML хранится, я анализирую ее для информации, которую я использую для создания различных других моделей. Каждый тип файла будет создавать разные вещи. Возможно, может быть 100 или более разных типов XML -файлов, хотя я не думаю, что я собираюсь написать анализаторы для многих. В этом случае имеет смысл?

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

Другой вариант - у меня доброе поле, и я положил что -то в каталог LIB, что обрабатывает все это. Или я использую Resque, может быть, каждый анализатор файла XML должен быть своей собственной работой. Есть недостатки в этом, хотя, как будто неловко принудительно работать в консоли Rails.

Это было полезно?

Решение

Из вашего объяснения модель «файла» сохраняет только результаты процесса загрузки файла и связанных с ними метаданных. Без дополнительной информации о других видах моделей, генерируемых из проанализированных данных XML, я не понимаю, почему наследство с одной таблицей применяется к этому варианту использования.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top