Você nunca deve armazenar qualquer tipo de informação como anos como nomes de tabelas desde seus dados. Você deve armazená-los como entradas de tabela separadas, como dados utilizáveis reais.
Alterar
company_historical_<year>
para apenas company_historical
e crie uma nova tabela chamada company_historical_years
que tem apenas todos os anos possíveis do Histórico da Empresa entradas podem ter. Em seguida, crie um relacionamento entre o Histórico da empresa entrada e os Anos históricos da empresa relacionados entrada.
Então algo como:
var CompanyHistoricalYears = sequelize.define('company_historical_years', {
year: {
type: Sequelize.INTEGER
},
classMethods: {
associate: function (models) {
CompanyHistoricalYears.hasMany(models.CompanyHistorical);
}
}
};
var CompanyHistorical = sequelize.define('company_historical', {
...
classMethods: {
associate: function (models) {
CompanyHistorical.belongsTo(models.CompanyHistoricalYears);
}
}
};
e então você pode consultá-lo com:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
isso lhe dará um único
CompanyHistoricalYears
entrada e todos os CompanyHistorical
entradas que estão dentro desse ano. Se nada disso fizer sentido, sinta-se à vontade para comentar com qualquer dúvida.