Sie sollten nie irgendwelche Informationen wie Jahre als Tabellennamen seit seinen Daten speichern. Sie sollten sie als separate Tabelleneinträge als tatsächlich verwendbare Daten speichern.
ändern company_historical_<year>
nur company_historical
und eine neue Tabelle company_historical_years
genannt erstellen, die nur die möglichen Jahren alle Firma Historische Einträge haben kann, hat.
Erstellen Sie dann eine Beziehung zwischen dem Gesellschaft Historischen Eintrag und der damit verbundenen Firma historcal Jahre Eintrag.
So etwas wie:
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);
}
}
};
und dann können Sie es abfragen mit:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
dies wird Ihnen einen einzigen CompanyHistoricalYears
Eintrag und alle CompanyHistorical
Einträge, die in diesem Jahr.
Wenn dies nicht sinnvoll ist, dann zögern Sie nicht, bei Fragen zu kommentieren.