Non dovresti mai memorizzare alcun tipo di informazione come anni come nomi di tabelle dai suoi dati. Dovresti salvarli come voci di tabella separate, come dati effettivamente utilizzabili.
Modifica company_historical_<year>
solo a company_historical
e crea una nuova tabella chiamata company_historical_years
che ha solo tutti gli anni possibili il Company Historical le voci possono avere.
Quindi crea una relazione tra la Cronologia società voce e i relativi Anni Storici Aziendali voce.
Quindi qualcosa come:
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 poi puoi interrogarlo con:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
questo ti darà un singolo CompanyHistoricalYears
entry e tutto il CompanyHistorical
voci che rientrano in quell'anno.
Se ciò non ha senso, sentiti libero di commentare con qualsiasi domanda.