Web サイトの強力なサーバー側検証を作成したいと考えています。特に、1 人のユーザーが投稿に複数回コメントするのを防ぐためです。
データベース側での一般的な用語は制約です。投稿ごとに各ユーザーのコメントを 1 つに制限する場合は、主キー制約または一意制約を使用します。たとえば、「comments」という名前のテーブルがある場合、そのテーブルには次の内容が含まれる可能性があります。
primary key (post_id, user_id)
または を使用して、その制約を適用しますunique (post_id, user_id)
。
または、単一のデータをデータベースに複数回送信しないようにします。
その要件には、いくつかの異なる意味が想像できます。質問を編集して、さらに詳細を追加することをお勧めします。
このため、最後の対話の後、1 人のユーザーがデータベースと対話するために 10 秒間ブロックされた方がよいと考えました。
これら 2 つの「要件」は、根本的に異なることを意味します。
- ユーザーを投稿ごとに 1 つのコメントに制限し、投稿ごとに 1つのコメントのみに制限したいと考えています。
- 投稿ごとに 10 秒ごとに 1 つのコメントにユーザーを制限したいと考えています。したがって、ユーザーが忍耐強い場合は、投稿ごとに 137 コメントを入力できるようにしたいと考えています。
これは、バックエンドでトリガーを使用するか、フロントエンドでアプリケーション コードを使用して実行できます。SQL データベース管理システムは、行間またはテーブル間の宣言的制約をまだ一般的にサポートしていません。