【发布时间】:2014-12-28 18:30:51
【问题描述】:
目前我有一个名为 Post 的模型类。
class Post extends Eloquent {
protected $table = 'posts';
protected $fillable = array('user_id', 'title', 'description', 'views');
/*
* Relationships
*/
public function user()
{
return $this->belongsTo('User');
}
public function tags()
{
return $this->belongsToMany('Tag', 'post_tags');
}
public function reactions()
{
return $this->hasMany('Reaction');
}
public function votes()
{
return $this->hasMany('PostVote');
}
//Scopes and functions...
}
我想将帖子分为两种不同的类型; articles 和 questions。我认为最好的方法是通过继承,所以Article 和Question 将扩展Post。最好的方法是什么?从哪里开始?
【问题讨论】:
-
在数据库中它仍然是一张表吗? (例如定义类型的列)
-
对不起,我很困惑!在帖子表中添加
type列就足够了,因为文章和问题之间没有区别。唯一的问题是文章有一个缩略图,但我可以留下那个专栏NULL来提问(对吗?)。 -
是的,如果只有一列不同,我会说完全可以将其保留为空。但是,如果这种情况发生变化,您可能希望将其拆分为多个表以减少未使用的列。那么现在,您的问题是否仍需要帮助,还是要单独使用 Post 模型?
-
是的,我很想听听您的回答,因为唯一的区别可能不是缩略图列。我需要这个来进一步发展。
标签: mysql inheritance laravel eloquent subclass