Hace seis meses, hice una pregunta sobre el modelado de datos para mi aplicación, y recibí algunos consejos que me apuntaban hacia las ITS (ver Modelo de datos de Rails - pregunta sobre mejores prácticas para más detalles).
Jugué con él, lo hice funcionar un poco, y luego me distraje y puse el proyecto en pausa.
Recién comencé a desarrollarlo desde cero, con el beneficio de 6 meses más de experiencia en programación / ROR, y una vez más me he topado con este muro cuando se trata de modelar ingredientes para mis recetas de cerveza.
Para dar un resumen rápido, suponga que tengo tres tipos de ingredientes (malta, lúpulo y levadura): cada uno comparte algunos atributos (nombre, precio, proveedor), pero cada uno también tiene atributos específicos para ese tipo de ingrediente. Todos están relacionados (son todos ingredientes) pero tienen un "comportamiento" diferente (por ejemplo, los granos se trituran y habría lógica para lidiar con lo que no se aplicaría al lúpulo / levadura, etc.)
Los ingredientes son lo suficientemente diferentes que estoy considerando tener solo tres tablas separadas en la base de datos ... pero ¿qué pasa con los controladores? ¿Podría usar un solo controlador de ingredientes para administrar los modelos separados?
He leído sobre alternativas a STI (herencia de tabla de clase y herencia de tabla múltiple) pero todas las soluciones parecen poco claras. ¿Hay alguna alternativa que me brinde la conveniencia de STI (como obtener todos los ingredientes, independientemente del tipo, con una sola consulta de tabla) sin los inconvenientes (campos nulos, tablas difíciles de manejar cuando sigues agregando subclases y campos, etc.)
Lo siento, sé que esta pregunta es un poco confusa, pero siento que no puedo encontrar una solución limpia y ahora estoy tratando de averiguar qué método es el mal menor. Estoy seguro de que otros se han ocupado de esto, y me encantaría escuchar las ventajas y desventajas de las diferentes soluciones. ¡Gracias!