将模型(即评论)链接到许多其他模型(即帖子、个人资料)
Linking a Model (ie. comment) to many other Models (ie. post, profile)
我正在使用 Laravel 构建一个 PHP 应用程序,其中我有一个 Comment
模型和许多其他可以附加 Comment
的模型。
例如,一个 Profile
可以有多个 Comment
但一个 Post
可以有多个 Comment
.
我应该将 Comment
分成两个模型(ProfileComment
和 PostComment
)还是应该像这样将它们放在一起?
class Comment {
public function user()
{
return $this->hasOne('User');
}
public function profile()
{
return $this->belongsTo('Profile');
}
public function post()
{
return $this->belongsTo('Post');
}
}
如果我将它们放在一起,那么在数据库级别我应该如何管理 comments
表?
我正在考虑拥有以下列:
integer: id - auto-incrementing id
integer: user_id - the user id
integer: foreign_id - profile/post id
varchar: type - which model? profile or post?
varchar: content - the actual comment
这是错误的方法吗?
如果您想使用 1 table,您将需要对评论模型进行变形。
如果你不想使用 morph,请分开。
我认为如果您要使用问题中的架构,您将使用变体。
我不知道哪里需要制作更多 tables,因为所有评论都将具有相同的结构(id,user_id(作者),评论)
所以在这种情况下,您只需要使其变形(可标记)即可。
我正在使用 Laravel 构建一个 PHP 应用程序,其中我有一个 Comment
模型和许多其他可以附加 Comment
的模型。
例如,一个 Profile
可以有多个 Comment
但一个 Post
可以有多个 Comment
.
我应该将 Comment
分成两个模型(ProfileComment
和 PostComment
)还是应该像这样将它们放在一起?
class Comment {
public function user()
{
return $this->hasOne('User');
}
public function profile()
{
return $this->belongsTo('Profile');
}
public function post()
{
return $this->belongsTo('Post');
}
}
如果我将它们放在一起,那么在数据库级别我应该如何管理 comments
表?
我正在考虑拥有以下列:
integer: id - auto-incrementing id
integer: user_id - the user id
integer: foreign_id - profile/post id
varchar: type - which model? profile or post?
varchar: content - the actual comment
这是错误的方法吗?
如果您想使用 1 table,您将需要对评论模型进行变形。 如果你不想使用 morph,请分开。
我认为如果您要使用问题中的架构,您将使用变体。
我不知道哪里需要制作更多 tables,因为所有评论都将具有相同的结构(id,user_id(作者),评论)
所以在这种情况下,您只需要使其变形(可标记)即可。