Nunca debe almacenar ningún tipo de información como años como nombres de tablas desde sus datos. Debe almacenarlos como entradas de tabla separadas, como datos utilizables reales.
Cambiar company_historical_<year>
a solo company_historical
y cree una nueva tabla llamada company_historical_years
que tiene todos los años posibles del Histórico de la empresa las entradas pueden tener.
A continuación, cree una relación entre el Histórico de la empresa entrada y los años históricos de la empresa relacionados entrada.
Así que 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);
}
}
};
y luego puedes consultarlo con:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
esto le dará un solo CompanyHistoricalYears
entrada y todo el CompanyHistorical
entradas que están dentro de ese año.
Si nada de esto tiene sentido, siéntase libre de comentar con cualquier pregunta.