0
A
回答
1
根據文章如何(假設任何一篇文章都可以涉及多個產品和/或多個品牌) 要實現這一點,最好的方法是建立從文章到產品和品牌的:m關係。 docs在這裏更詳細地解釋這個: Sequelize Docs - Association#Scopes
所以,例如:
Article = sequelize.define('article', {
title: DataTypes.String,
text: DataTypes.TEXT
});
ArticleAbout = sequelize.define('article_about', {
about_id: {
type: DataTypes.INTEGER,
unique: 'about_article_ref'
},
about: {
type: DataTypes.STRING,
unique: 'about_article_ref',
},
reference_id: {
type: DataTypes.INTEGER,
unique: 'about_article_ref',
references: null
}
});
Brand.belongsToMany(Article, {
through: {
model: ArticleAbout,
unique: false.
scope: {
about: 'brand'
}
},
foreignKey: 'reference_id',
constraints: false
});
Product.belongsToMany(Article, {
through: {
model: ArticleAbout,
unique: false.
scope: {
about: 'product'
}
},
foreignKey: 'reference_id',
constraints: false
});
Article.belongsToMany(Brand, {
through: {
model: ArticleAbout,
unique: false
},
foreignKey: 'about_id'
});
Article.belongsToMany(Product, {
through: {
model: ArticleAbout,
unique: false
},
foreignKey: 'about_id'
});
關鍵件是unique: 'string'
和through:
通過設置唯一的字符串,你告訴Sequelize撰寫該鍵爲複合鍵的一部分,這意味着幾個對象可以關聯到一把鑰匙。 constraints: false
指示編譯器停止對所有交叉引用外鍵的尖叫。
設置through:
通過表格設置關係,就像您在使用的AboutArticle表中描述的一樣。
然後你就可以開始添加到產品和品牌的文章:
product.addArticle(article);
brand.addArticle(article);
這是,查詢表變爲一個非常簡單的任務:
Article.getProducts();
Article.getBrands();
Product.getArticles();
Brand.getArticles();
希望有所幫助。
相關問題
- 1. 如何在Sequelize中創建關係
- 2. 創建Sequelize關係/協會
- 3. 如何在Laravel 5中爲這種關係創建模型?
- 4. 如何在phpMyAdmin中創建這種關係?
- 5. 創建遷移這種關係
- 6. 如何建模這種關係
- 7. Sequelize:創建一對多關係
- 8. 如何在PostgreSQL中建立這種關係?
- 9. 如何在django中建立這種關係?
- 10. 如何在Xcode 4中建立這種關係?
- 11. 如何在Yii2中建立這種關係
- 12. 如何創建這個關係表?
- 13. 如何創建這種XML?
- 14. 如何在Sequelize遷移中創建關聯?
- 15. 如何在Sequelize/Node.js中創建關聯的對象?
- 16. BCNF中的這種關係?
- 17. 如何爲RavenDB中的文檔建立這種關係?
- 18. 如何在這種情況下建立關係?
- 19. 如何在rails中創建關係?
- 20. 如何在Orchard中創建表關係?
- 21. 如何在excel中創建vba關係?
- 22. 如何在MySQL中創建關係表?
- 23. 如何在Laravel中創建關係?
- 24. 如何在MySQL中創建關係
- 25. 如何在Doctrine中創建關係
- 26. 如何在Orient-DB中創建關係?
- 27. 如何在關係數據庫中建模這個關係?
- 28. 建立這種關係的數據庫?
- 29. 如何解決這種復發關係?
- 30. 我該如何處理這種關係?