2017-01-18 15 views
4

は私が削除されたソフトである私のDBに入力を持っており、ユーザーは同じ名前を持つ新しい入力を作成しようとした場合、彼は、検証エラーが発生します削除Laravelの検証が

は何である「名はすでに存在しています」これを解決するベストプラクティス?

は多分ソフト削除されたエントリが復元されますので、

(私は何とかそれは、ユーザが同じ名前で新しいエントリを挿入することができるように動作させるならば)、競合を引き起こすことになるので、それを残すために良いことです

私は何が正しいのか分からないが、私はこのような状況を抱えた唯一の人ではないと確信している。

+0

ソフト削除が本当に必要ですか?本当に必要ですか?この "バグ"の周りにはいくつかの方法がありますが、私は喜んで提供しますが、私の経験では、ソフト削除は修正されたソフトウェアよりも多くのソフトウェアを壊してしまいました。 – Loek

+0

まあ、ソフト削除は私の呼び出しではありません...しかし、私はそれについてもっと知りたいです...なぜ悪い習慣をソフト削除するのですか? – lewis4u

+1

必ずしも悪いことではありません。あなたが削除された後に回復の必要性が高いレコードがたくさんある場合、ソフト削除はあなたの親友です。しかし、私の経験ではソフト削除の唯一の理由は、人々がデータを保持したいからです。その場合、データベースを1日/週/ 1回ダンプする必要があります。ソフト削除を忘れても問題ありません。これは面白い人工物であり、良いコメントもあります!それらを読んで、あなたが何をすべきかを理解する:) http://jameshalsall.co.uk/posts/why-soft-deletes-are-evil-and-what-to-do-instead – Loek

答えて

1

ユースケースは、理想的にはアーキテクチャ全体を統治する必要があります。

あなたの列が(名前を言う)ユニークになりたい場合は、あなたのテーブル構造の列に一意のインデックスを追加して、あなたもあなたのコントローラで重複をチェックするための検証を追加します。あなたは、ソフトの削除を持っている場合、私の意見では

は、ご利用の場合は一意であるためにあなたのコラムを必要とし、その後、あなたが検証を追加する必要があります

(そうでない場合は、あなたのDB内のインサート上の違反があるでしょう)あなたは選択肢がありません

+0

OK ...ありがとうあなたの答え – lewis4u