Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby-on-rails-4/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 修改我的网站以允许匿名评论_Mysql_Database_Database Design_Identity_User Accounts - Fatal编程技术网

Mysql 修改我的网站以允许匿名评论

Mysql 修改我的网站以允许匿名评论,mysql,database,database-design,identity,user-accounts,Mysql,Database,Database Design,Identity,User Accounts,我为自己的网站编写代码,作为一种教育/娱乐活动。目前,该网站的一部分是一个博客(与其他所有网站一样:-/),它支持常见的基本博客功能,包括评论文章。但我只为登录用户启用了注释;我想修改代码以允许匿名评论——也就是说,我想允许人们在不首先在我的网站上创建用户帐户的情况下发表评论,尽管仍然需要某种身份验证来防止垃圾邮件 问题:我应该为匿名评论保存哪些信息?我想至少显示姓名和电子邮件地址(用于显示一个Gravatar),可能还有网站URL,因为我最终也希望接受OpenID,但还有什么其他意义吗 其他问

我为自己的网站编写代码,作为一种教育/娱乐活动。目前,该网站的一部分是一个博客(与其他所有网站一样:-/),它支持常见的基本博客功能,包括评论文章。但我只为登录用户启用了注释;我想修改代码以允许匿名评论——也就是说,我想允许人们在不首先在我的网站上创建用户帐户的情况下发表评论,尽管仍然需要某种身份验证来防止垃圾邮件

问题:我应该为匿名评论保存哪些信息?我想至少显示姓名和电子邮件地址(用于显示一个Gravatar),可能还有网站URL,因为我最终也希望接受OpenID,但还有什么其他意义吗

其他问题:我应该如何修改数据库来存储这些信息?注释表的模式当前为

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冲突)或在我的现有用户表中为匿名用户创建假用户帐户


其中一个棘手的问题是,如果有人试图使用已经与我网站上的某个帐户关联的电子邮件地址(或OpenID)发布匿名评论,我希望捕捉到这一点,并提示他们登录。

匿名评论的全部意义在于用户不必登录,对吗

我个人的爱好是不强迫用户输入任何东西,甚至连他们的名字都不强迫!唯一需要的字段是注释文本本身。如果他们不想透露自己的姓名或电子邮件,好吧,谁在乎呢

如果他们提供了一封已经存在的电子邮件,那么他们很可能在很久以前注册,甚至不记得自己的密码

同样,在这种情况下,不要强迫用户登录。只需让他们选择登录或将电子邮件字段留空(或更改其内容)。或者,只需显示一个警告框,告诉他们将发送没有电子邮件地址的评论,并带有“确定”和“取消”选项

那么,用匿名评论存储什么呢

我想说的是存储他们的姓名和电子邮件(当然,不要向公众显示他们的电子邮件),但要将它们设置为可选字段,而不是必填字段


你也可以存储他们的网站,虽然我个人不知道这有什么意义,除了为匿名海报做自我广告之外

毫无疑问,您可以在注释表中输入“用户名”。然后将用户表中的值复制到登录用户的该字段中。这样,如果用户被删除,他们的评论仍然会附加一个名称。注释通常是分层的,使得在注释树中间只删除一个是困难的。
如果他们将其留空,您可以在表中输入“匿名用户”文本。

好吧,我还是需要电子邮件地址来发送验证消息,所以我想我还是把它存储起来吧-当然不会直接显示;-)但我有点喜欢只留下评论而不留下任何其他信息的想法。确认电子邮件也是用户烦恼的来源,有时是必要的(例如订阅/注册确认),但留下评论当然不需要电子邮件验证。