续集 - 为我的模型实现垃圾桶



我正在使用Sequelize构建我的电子商店的后端。我已经定义了clientsproductsorders等模型。我希望这些模型的任何实例都是"垃圾"的,就像删除的实例一样,我希望垃圾实例不会出现在调用<Model>.findAll()<ModelA>.get<ModelB>s()甚至<ModelA>.findAll({ include: [{ model: <ModelB> }]的结果中。但我仍然希望能够查询那些被丢弃的实例(并最终恢复它们)。

我正在考虑的解决方案是向我的模型添加一个.status属性 (ENUM('active', 'trashed')),然后将一个beforeFind钩子添加到我的所有模型以过滤掉未active的实例,除非查询显式搜索 id 或trashed项。 不过,我担心传递给我的beforeFind钩子的查询的潜在复杂性。如何检测查询正在搜索的内容以及如何修改它们以过滤掉垃圾项?这个解决方案可能还有其他缺点,我什至没有考虑过......

在尝试实现之前,我想知道其他人是否尝试过这种模式,他们是如何做到的以及他们面临什么困难。谢谢 :-)

您是否正在寻找paranoid选项?

相关内容

  • 没有找到相关文章

最新更新