Sie sollten niemals Informationen wie Jahre als Tabellennamen seit ihren Daten speichern. Sie sollten sie als separate Tabelleneinträge als tatsächlich nutzbare Daten speichern.
Ändern Sie company_historical_<year>
zu nur company_historical
und erstellen Sie eine neue Tabelle namens company_historical_years
die nur alle möglichen Jahre der Company Historical enthält Einträge haben können.
Erstellen Sie dann eine Beziehung zwischen dem Unternehmensverlauf Eintrag und die dazugehörigen Unternehmensgeschichte Eintrag.
Also sowas 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]
});
Dadurch erhalten Sie ein einzelnes CompanyHistoricalYears
Eintrag und alle CompanyHistorical
Einträge innerhalb dieses Jahres.
Wenn nichts davon Sinn macht, dann zögern Sie nicht, mit Fragen zu kommentieren.