Bạn không bao giờ nên lưu trữ bất kỳ loại thông tin nào như năm dưới dạng tên bảng kể từ dữ liệu của nó. Bạn nên lưu trữ chúng dưới dạng các mục nhập bảng riêng biệt, dưới dạng dữ liệu có thể sử dụng thực tế.
Thay đổi company_historical_<year>
chỉ company_historical
và tạo một bảng mới có tên company_historical_years
mà chỉ có tất cả các năm có thể là Lịch sử công ty mục nhập có thể có.
Sau đó, tạo mối quan hệ giữa Lịch sử công ty mục nhập và Số năm lịch sử công ty có liên quan mục nhập.
Vì vậy, một cái gì đó như:
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);
}
}
};
và sau đó bạn có thể truy vấn nó bằng:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
điều này sẽ cung cấp cho bạn một CompanyHistoricalYears
duy nhất mục nhập và tất cả CompanyHistorical
các mục trong năm đó.
Nếu điều này không hợp lý thì hãy bình luận với bất kỳ câu hỏi nào.