manxingxing/manxingxing.github.io

不要再使用 paranoia 风格的软删除, 使用 discard 风格的显式处理

Opened this issue · 0 comments

  1. 不同场景下,「删除」有不同的含义。不能都用「删除」两个字一概而论
  2. paranoia 把业务上各种不同语义的「删除」,绑定在了 AR 已有的 destroy 操作上,两者耦合,使得很多场景非常别扭,bug 频出
  3. paranoia 魔改了关联,复杂关联的 sql 经常出现意外的结果
  4. paranoia 迫使一个 model 的关联也得采用 paranoia,这是不好的味道
  5. paranoia restore 是个不可能实现正确的方法。靠时间戳识别手动删除,连带删除是很不靠谱的。