私は自分のウェブサイトのコードを教育的/楽しい練習として書いています。現在、Web サイトの一部はブログ (他のすべてのサイトと同様 :-/) であり、投稿へのコメントなど、通常の基本的なブログ機能をサポートしています。ただし、ログインしているユーザーに対してのみコメントを有効にしています。匿名のコメントを許可するようにコードを変更したい - つまり、自分のサイトでユーザー アカウントを作成しなくてもコメントを投稿できるようにしたいのですが、スパムを防ぐために何らかの認証が必要になります。
質問: 匿名のコメントにはどのような情報を保存する必要がありますか? 最終的には OpenID も受け入れたいので、少なくとも表示名とメール アドレス (Gravatar を表示するため)、およびおそらく Web サイトの URL を考えていますが、他に何か意味はありますか?
その他の質問: この情報を保存するには、データベースをどのように変更すればよいですか? コメントテーブル用に私が持っているスキーマは現在
comment_id smallint(5) // The unique comment ID
post_id smallint(5) // The ID of the post the comment was made on
user_id smallint(5) // The ID of the user account who made the comment
comment_subject varchar(128)
comment_date timestamp
comment_text text
名前、電子メール アドレスなどのフィールドをコメント テーブルに追加する必要がありますか? (悪い考えのようです) 新しい「匿名ユーザー」テーブルを作成しますか? (もしそうなら、匿名ユーザー ID が通常のユーザー ID と競合しないようにする方法) または、既存のユーザー テーブルに匿名ユーザー用の偽のユーザー アカウントを作成しますか?
これを難しくしている理由の 1 つは、誰かが私のサイトのアカウントに既に関連付けられている電子メール アドレス (または OpenID) を使用して匿名のコメントを投稿しようとした場合、それをキャッチしてログインを促すことです。