आपको कभी भी किसी भी प्रकार की जानकारी जैसे वर्षों को टेबल नाम के रूप में उसके डेटा के रूप में संग्रहीत नहीं करना चाहिए। आपको उन्हें वास्तविक प्रयोग करने योग्य डेटा के रूप में अलग तालिका प्रविष्टियों के रूप में संग्रहीत करना चाहिए।
company_historical_<year>
बदलें सिर्फ company_historical
. के लिए और company_historical_years
. नामक एक नई तालिका बनाएं जिसमें कंपनी ऐतिहासिक . के सभी संभावित वर्ष हैं प्रविष्टियां हो सकती हैं।
फिर कंपनी ऐतिहासिक . के बीच संबंध बनाएं प्रविष्टि और संबंधित कंपनी के ऐतिहासिक वर्ष प्रवेश।
तो कुछ इस तरह:
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);
}
}
};
और फिर आप इसके साथ क्वेरी कर सकते हैं:
CompanyHistoricalYears.findOne({
where: {
year: 2011, // or you can use "new Date().getFullYear()"
},
include: [CompanyHistorical]
});
यह आपको एक ही CompanyHistoricalYears
. देगा प्रविष्टि और सभी CompanyHistorical
प्रविष्टियाँ जो उस वर्ष के भीतर हैं।
यदि इनमें से कोई भी समझ में नहीं आता है तो बेझिझक किसी भी प्रश्न के साथ टिप्पणी करें।