与变量表的一对多关系

时间:2014-08-07 01:59:40

标签: mysql sql laravel eloquent relationships

所以,我有一个电视节目的网站,我目前有以下表格结构(仅列出相关栏目):

Table 1 - TV Shows
id

Table 2 - Episodes
id

Table 3 - Comments 
target
value

电视节目和剧集都可以有评论,所以"目标"列指定它是否是"电视节目"或者#34;插曲"评论和"价值" column指定其ID。

我已经想过合并两个列并使用" x_ID" (" tvshow_id"或" episode_id",如:" tvshow_45"或" episode_9458")。

但我真正想知道的是:最好的方法是什么?通过我描述的两种方式,我无法使用外键(我不知道这有什么好处,但我认为它很好)。另一个问题是使用Laravel的Eloquent功能......

我可以创建两个评论表,但我不知道它是唯一还是最好的方式...

有人可以帮我管理吗?

提前谢谢。

加布。

1 个答案:

答案 0 :(得分:0)

它在laravel中的工作方式,您使用commentable_*列:

id, commentable_id, commentable_type, value

然后你使用a polymorphic relationship,以便Eloquent为你处理它。


如果您正在使用迁移,laravel可以为您生成这些列:

Schema::create('comments', function($table)
{
    $table->increments('id');
    $table->morphs('commentable');
    $table->string('value');
});

它甚至会自动为你创建一个复合索引!