0
我正在使用Sequelize for Node,並且我有用戶和項目。用戶可以通過多種方式與項目進行交互,例如投票或讚美(本例中有兩種不同的方式)。在Sequalize中的兩個表之間有多種類型的多對多關係
我最初的想法是有兩個不同的多對多關係,但Sequelize只有一個removeItem調用,我還沒有想出如何指定哪個。
計劃2是用一個額外的元素「類型」建立一個多對多的表,所以我可以指定種類。我可以在添加東西時指定類型。這遇到了兩個問題,一個是外鍵,而且默認情況下,這兩個問題是唯一的。我通過從數據庫中手動刪除約束來糾正這種情況,這似乎是足夠的(我將id設置爲主鍵自動增量)。其次,我似乎無法弄清楚如何使刪除指定哪裏類型=我想要的類型。
代碼:
建表:
var UserActions = sequelize.define('userActions', {
id: {
type: DataTypes.INTEGER,
primaryKey: true,
autoIncrement: true
},
type: DataTypes.STRING
});
要刪除的項目:
models.Item.findOne({where: {id : params.itemID}}).then(function (video){
models.User.findOne({where: {id : params.itemID}}).then(function (user){
if(params.applaud == "true") {
console.log("Add applaud");
user.addItem(video,{type:"commend"});
} else {
user.removeItem(item,{where: {type:"commend"}});
console.log("Remove, Commendation");
}
res.json({'response' : 'Success'});
});
});
的問題是,這將刪除的項目和用戶,當之間的所有互動我希望它只能刪除表揚。
如何最好地管理Sequelize中相同兩個表之間的多個多對多關係?
它叫Sequelize –
我糾正它,謝謝。 – Pyrodante
你是說Sequelize妨礙了MySQL的使用嗎? –