Du bör aldrig lagra någon form av information som årtal som tabellnamn sedan dess data. Du bör lagra dem som separata tabellposter, som faktiska användbara data.
Ändra company_historical_<year>
till bara company_historical
och skapa en ny tabell som heter company_historical_years
som bara har alla möjliga år företagshistoriska poster kan ha.
Skapa sedan en relation mellan företagshistoriska posten och de relaterade företagets historiska år inträde.
Så något i stil med:
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);
}
}
};
och sedan kan du fråga det med:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
detta ger dig ett enda CompanyHistoricalYears
post och alla CompanyHistorical
poster som är inom det året.
Om inget av detta är vettigt, kommentera gärna med eventuella frågor.