【问题标题】:Laravel validation unique soft deletedLaravel 验证唯一软删除
【发布时间】:2017-06-02 19:51:33
【问题描述】:

我的数据库中有一个被软删除的输入,如果用户尝试创建一个具有相同名称的新输入,他将收到验证错误“名称已存在”

解决这个问题的最佳做法是什么?

这样是否更好,因为软删除的条目可能会被恢复,这会导致冲突(如果我能以某种方式使其工作,以便用户可以插入具有相同名称的新条目)

我不知道什么是正确的做法,但我确信我不是唯一遇到这种情况的人。

【问题讨论】:

  • 您真的需要软删除吗?真的需要吗?有一些方法可以解决这个“错误”,我很乐意提供它们,但根据我的经验,软删除破坏的软件比修复的要多。
  • 好吧,软删除不是我的决定...但我想了解更多...为什么软删除是一种不好的做法?
  • 这不一定是坏习惯。如果您有很多在删除后需要恢复的记录,那么软删除是您最好的朋友。但根据我的经验,软删除的唯一原因是人们只想保留他们的数据,在这种情况下,您应该每天/每周/无论如何转储一次数据库,并且放弃软删除是完全可以的。这是一个有趣的文章,也有很好的 cmets!阅读它们并弄清楚你应该做什么:) jameshalsall.co.uk/posts/…

标签: php laravel


【解决方案1】:

理想情况下,您的用例应该管理您的整个架构。

如果您希望您的列(比如名称)是唯一的,您可以在 表结构 中为该列添加一个唯一索引,并且您还需要添加一个验证来检查您的 控制器。

在我看来,如果您有软删除并且您的用例要求您的列是唯一的,那么您必须添加验证(否则您的数据库中的插入会违反)

你别无选择

.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-13
    • 2013-07-01
    • 1970-01-01
    • 2019-02-16
    • 2018-07-29
    • 1970-01-01
    相关资源
    最近更新 更多