Ich habe ein Artikelmodell, bei dem sich jeder Artikel auf einen Benutzer bezieht:
const Articles = db.define("Articles", { title: { type: DataTypes.STRING, allowNull: false, }, description: { type: DataTypes.STRING, allowNull: false, }, img_url: { type: DataTypes.STRING, allowNull: false, }, author: { type: DataTypes.STRING, allowNull: false, }, }); Articles.belongsTo(User); module.exports = Articles;
Wie lösche ich alle von einem Benutzer erstellten Artikel, wenn er sein Konto löscht?
Ich habe die folgende Funktion, um einen Benutzer zu löschen:
static async deleteUserById(req, res) { const id = req.params.id; const user = await User.findOne({ where: { id: id, }, }); if (!user) { res.status(404).json({ msg: "User not found!" }); return; } try { await User.destroy({ where: { id: id, }, }); res.status(200).json({ msg: "Account successfully deleted!" }); } catch (msg) { res.status(500).json({ msg: "Oops... an error has occurred!" }); } }
Ich bin von Mongodb zu MySQL gewechselt und bin ein bisschen verloren in Beziehungen
您的文章模型与用户没有任何关系,因为我看到它只有一个用户名。您可以为作者创建一个新集合,当您创建新文章时,将作者
_id
保存在author
字段中即可。现在,当您删除用户时,您可以根据作者键查询文章集合并将其删除。但是,一旦删除,您将无法取回这些文章。