Seis meses atrás, fiz uma pergunta sobre modelagem de dados para o meu aplicativo e recebi alguns conselhos apontando-me para a STI (consulte Modelo de dados Rails - pergunta sobre melhores práticas para obter detalhes).
Eu brinquei com ele, fiz funcionar um pouco, depois me distraí e coloquei o projeto em hiato.
Comecei a desenvolvê-lo novamente do zero, com o benefício de mais 6 meses de experiência em programação / ROR, e mais uma vez bati nessa barreira quando se trata de modelar ingredientes para minhas receitas de cerveja.
Para dar um resumo rápido, suponha que eu tenha três tipos de ingredientes (malte, lúpulo e fermento) - cada um compartilha alguns atributos (nome, preço, fornecedor), mas cada um também possui atributos específicos para esse tipo de ingrediente. Eles são todos relacionados (todos são ingredientes), mas têm um "comportamento" diferente (por exemplo, os grãos são amassados e haveria lógica para lidar com o que não se aplicaria ao lúpulo / levedura, etc ...)
Os ingredientes são diferentes o suficiente para que eu esteja pensando em ter três tabelas separadas no banco de dados ... mas e os controladores? Posso usar um único controlador de ingredientes para gerenciar os modelos separados?
Eu li sobre alternativas ao STI (herança de tabela de classes e herança de várias tabelas), mas todas as soluções parecem esquisitas. Existem alternativas que me proporcionam a conveniência da STI (como obter todos os ingredientes, independentemente do tipo, com uma única consulta de tabela) sem os inconvenientes (campos nulos, tabelas difíceis de usar quando você continua adicionando subclasses e campos, etc.)
Desculpe, eu sei que esta pergunta é um pouco confusa, mas sinto que não consigo encontrar uma solução limpa e agora estou tentando descobrir qual método existe o mal menor. Tenho certeza de que outras pessoas já lidaram com isso, e eu adoraria ouvir os prós / contras de diferentes soluções. Obrigado!