首页 > 解决方案 > 何时使用 Sequelize paranoid deletedAt

问题描述

我正在尝试创建一个数据库并维护一个基于 sequelize 构建的宁静 api 服务。

我想要一个模型,UserGameProfile,可以根据用户的喜好删除和恢复。

我希望它能够被删除,并且还可以打开其他状态,例如草稿、取消、提交、批准。

sequelize 中的 Paranoid 属性对这个模型有多大用处?

为什么我应该考虑在状态列(int)之类的东西上使用 Paranoid 属性?

标签: sequelize.js

解决方案


使用 paranoid: true 你会在所有查询中自动获得未删除的记录。如果您希望获取所有记录,包括已删除的记录,则应在某个查询的选项中指明 paranoid: false。此查询为您获取所有状态 = 1 的未删除记录

UserGameProfile.findAll({
where: {
status: 1
}})

此查询为您获取所有 status=1 的记录,包括已删除的记录

UserGameProfile.findAll({
where: {
status: 1
}, paranoid: false })

推荐阅读