¿Cuándo tiene sentido STI? Estamos almacenando la misma información para cada tipo pero utilizándola de manera diferente

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

Pregunta

Así que sé que STI es la cosa más vilipendiada de la historia, pero tengo una instancia en la que creo que en realidad podría tener sentido. Mi aplicación está analizando un montón de diferentes tipos de archivos XML. Cada modelo de archivo almacena exactamente la misma información. Solo cierta información sobre con qué usuario está asociado, cuándo se cargó y dónde se almacena en S3.

Después de que se almacena el archivo XML, lo analizo para obtener información que utilizo para crear otros modelos. Cada tipo de archivo creará cosas diferentes. Es posible que pueda haber 100 o más tipos diferentes de archivos XML, aunque no creo que voy a escribir analizadores para tantos. ¿STi tiene sentido en este caso?

Supongo que la desventaja es que los modelos están en un directorio, por lo que inundará ese directorio a menos que piratee rieles y lo peguen en un subdir en modelos dir.

La otra opción es que tengo un campo amable y pongo algo en el directorio LIB que maneja todo esto. O estoy usando Resque, tal vez cada analizador de archivos XML debería ser su propio trabajo. Sin embargo, hay inconvenientes en eso, como ser un poco incómodo forzar un trabajo en la consola de Rails.

¿Fue útil?

Solución

A partir de su explicación, el modelo 'Archivo' solo está almacenando los resultados del proceso de carga de archivos y los meta datos asociados. Sin más información sobre los otros tipos de modelos que se generan a partir de los datos XML analizados, no veo por qué la herencia de la tabla única se aplica a este caso de uso.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top