所以,我有一个电视节目的网站,目前有以下表格结构(仅列出相关列):
Table 1 - TV Shows
id
Table 2 - Episodes
id
Table 3 - Comments
target
value
电视节目和剧集都可以有评论,因此“目标”列指定它是“电视节目”还是“剧集”评论,“值”列指定其 ID。
我已经考虑过合并这两列并使用“x_ID”(“tvshow_id”或“episode_id”,例如:“tvshow_45”或“episode_9458”)。
但我真正想知道的是:最好的方法是什么?使用我描述的两种方式,我都无法使用外键(我不知道这样做的好处,但我想它很好)。另一个问题是使用 Laravel 的 Eloquent 功能...
我可以创建两个评论表,但我不知道这是否是唯一或最好的方法......
有人可以帮我解决这个问题吗?
提前谢谢您。
加布。
最佳答案
它在 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');
});
它甚至会自动为您创建一个复合索引!
关于mysql - 与变量表的一对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25173065/