3

@Column(unique=true) データベースにデータを挿入する前に、重複する値をチェックするためのベストプラクティスを使用して、ユーザー名に一意の制約を設定しますか?

  1. 同じユーザー名を持つデータを挿入しようとすると、プログラムによってスローされる例外をキャッチします。
  2. 挿入する前に、指定されたユーザー名が既に存在するかどうかをデータベースに確認してください。
4

3 に答える 3

5

解決策 1 (try-catch) で問題ないと思います。解決策 2 では、データベースに同時実行性がある場合に備えて、例外処理が必要です。

于 2013-04-30T10:21:51.620 に答える
0

そのようなユーザー名データが UI に入力されたときに、そのような UI が存在すると仮定して、ユーザー名の重複をすぐに確認します。たとえば、javascript/XHR を使用します。

JavaScript の検証がスキップされ、状況が変わった可能性があるため、送信後に再確認してください。

それでも重複したユーザー名が存在する場合 (チェックが失敗したか、誰かが同時に挿入したために)、例外的なケースのように聞こえるので、例外をキャッチします。

つまり、両方のオプションと 2 番目のチェックが 2 回行われます。

于 2013-04-30T10:20:44.370 に答える