Bewaar nooit enige vorm van informatie zoals jaren als tabelnamen sinds de gegevens. U moet ze opslaan als afzonderlijke tabelgegevens, als daadwerkelijk bruikbare gegevens.
Wijzig company_historical_<year>
naar gewoon company_historical
en maak een nieuwe tabel met de naam company_historical_years
die net alle mogelijke jaren heeft van de Bedrijfsgeschiedenis inzendingen kunnen hebben.
Maak vervolgens een relatie tussen de Bedrijfsgeschiedenis vermelding en de gerelateerde Historische jaren van het bedrijf invoer.
Dus zoiets als:
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);
}
}
};
en dan kun je het opvragen met:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
dit geeft je een enkele CompanyHistoricalYears
invoer en alle CompanyHistorical
inzendingen die binnen dat jaar vallen.
Als dit allemaal niet logisch is, voel je dan vrij om commentaar te geven met eventuele vragen.