Nigdy nie należy przechowywać żadnych informacji, takich jak lata, jako nazwy tabel od ich danych. Powinieneś przechowywać je jako osobne wpisy w tabeli, jako rzeczywiste dane użytkowe.
Zmień firma_historyczna_
company_historical
i utwórz nową tabelę o nazwie firma_lata_historyczne
który ma po prostu wszystkie możliwe lata Historyczne firmy wpisy mogą mieć.
Następnie utwórz relację między Historią firmy wpis i powiązane Lata historii firmy wpis.
Czyli coś takiego:
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);
}
}
};
a następnie możesz wysłać zapytanie za pomocą:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
to da ci jeden CompanyHistoricalYears
wpis i wszystkie Historyczne
Comp wpisy z tego roku.
Jeśli nie ma to sensu, możesz skomentować wszelkie pytania.