Никога не трябва да съхранявате каквато и да е информация като години като имена на таблици от нейните данни. Трябва да ги съхранявате като отделни записи в таблица, като действително използваеми данни.
Променете company_historical_<year>
само до company_historical
и създайте нова таблица, наречена company_historical_years
който просто има всички възможни години Фирмена история записите могат да имат.
След това създайте връзка между Исторически данни на компанията запис и свързаните с него Исторически години на компанията запис.
Така че нещо като:
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);
}
}
};
и след това можете да го заявите с:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
това ще ви даде един CompanyHistoricalYears
запис и всички CompanyHistorical
записи, които са в рамките на тази година.
Ако нищо от това няма смисъл, не се колебайте да коментирате с всякакви въпроси.