पृष्ठभूमि :
यह एक उत्पाद डेटाबेस प्रोटोटाइप के लिए है, प्रत्येक उत्पाद कई संबंधित उत्पादों हो सकते हैं, और प्रत्येक संबंध में एक प्रकार है, जैसे
प्रौद्योगिकी
हम नोड पर सिक्वेलेट जे एस का उपयोग कर रहे हैं मॉडल को परिभाषित करने के लिए।
मॉडल स्निपेट:
sequelize.define ('उत्पाद', {id: {type: DataTypes.INTEGER, AutoIncrement: true, primaryKey: true}, नाम: {type: DataTypes.STRING, allowNull: false, टिप्पणी: 'उत्पाद का नाम'} ...}); Sequelize.define ('ProductRelationType', {id: {type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true}, नाम: {type: DataTypes.STRING, अनुमति दें: गलत, टिप्पणी: 'रिश्ते के प्रकार विवरण'}}) ; Sequelize.sync ({force: false})। तब (फ़ंक्शन () {...});
प्रश्न
क्या सीक्वेलिज़ में डेटाटाइप के रूप में खुद को मॉडल का उपयोग करना संभव है, उदाहरण के लिए: / P>
sequelize.define ('ProductRelation', {आईडी: {type: DataTypes.INTEGER, autoIncrement: true, primaryKey: true}, संबंधित उत्पाद: {प्रकार: उत्पाद} // उत्पाद मॉडल के संदर्भ) );
और इसके बाद के द्वारा:
उत्पाद। प्रमुख (उत्पाद रीलेशन, {as: 'relatedProducts'}); ProductRelation.hasOne (उत्पादरण प्रकार टाइप करें, {as: 'RelationType'});
वैकल्पिक रूप से, ProductRelation तालिका परिभाषा को बाहर करें, और उपयोग करें:
db.Product.hasMany (db.Product, {through: 'संबंधित उत्पाद'}) ; Db.RelatedProduct.hasMany (db.Product, {द्वारा: 'संबंधित उत्पाद'});
नोट: ये अवधारणा उदाहरण हैं, वे काम नहीं करते हैं।
कोई भी सुझाव, या वैकल्पिक मॉडलिंग दृष्टिकोण की सराहना की जाती है।
धन्यवाद
ऐसा प्रतीत होता है, जो आप चाहते हैं वह सिर्फ एक n: m रिश्ते को स्थापित करना है उत्पाद
से उत्पाद
।
एक लिंक प्राप्त करने का एकमात्र तरीका है- (या "के माध्यम से") तालिका। आप या तो मैन्युअल रूप से कर सकते हैं या इसे sequelize
कर अपने आप प्रयोग कर सकते हैं:
var संबंधित प्रोडक्ट्स = sequelize.define ('RelatedProducts', {// अन्य कॉलम यहाँ}) ; Product.belongsToMany (उत्पाद, {के माध्यम से: संबंधित उत्पाद, विदेशी कि: 'संबंधित ProductId'}); उत्पाद। बेल्ग्सटामनी (उत्पाद, {के माध्यम से: संबंधित उत्पाद});
No comments:
Post a Comment