我需要,当客人添加评论时,我需要检查给他发电子邮件。当他发送评论时,我需要确认向他发送电子邮件,因为在表中我的列具有email_token。
现在我的评论表结构:
- id
- post_id
- user_id
- name
- email
- email_token
- email_verified_at
- body
- created_at
- updated_at
我对我的桌子的结构有疑问。怎么会更好?是在评论表中为访客的所有列(名称,电子邮件,email_token,email_verified_at),还是为访客评论创建单独的表?我需要在帖子模型中显示所有活动评论。如果访客未确认电子邮件,则评论未激活。
在后期模型中,我有这个:
public function comments() {
return $this->hasMany('App\Comment')->whereNotNull('email_verified_at')->orWhereNotNull('user_id'); //display only comments by user and guest (with confirmed email)
}
答案 0 :(得分:1)
您应该为来宾用户创建一个单独的表。
当已知用户对帖子发表评论时,您不需要电子邮件验证,对吗?因此,这些字段是不必要的。
您可以只为来宾用户构建标准模型。以后,您可以通过添加将访客用户转换为普通用户并保留其评论等方式来扩展功能。与单独的表相比,使用单独的表会更容易。
为使事情更有效率,您可以加倍努力,让用户成为评论morphable的使用者。因此,很容易跟踪用户。