两个表上的Laravel参考

时间:2015-04-21 06:50:46

标签: laravel-5

我正在设计一个名为answers的数据库表。字段为source_typesource_id等。source_type是"问题"或"评论",这些是表格。现在问题是,我希望source_id表中的answers引用id中的questionsid中的comments,具体取决于source_type字段。

所以在正常情况下,这将是:

$table->foreign('source_id')->references('id')->on('questions');

或者

$table->foreign('source_id')->references('id')->on('comments');

但是,我怎么能不确定如何在两个表中添加限制?

1 个答案:

答案 0 :(得分:1)

在这种情况下,其中一个选项是定义2个字段question_id和comment_id。这两个都是各个表的可空外键。

如果设置了其中一个,那么您就知道它是哪种类型。

您也无法定义source_id的外键,但是存在更高的数据损坏风险,您无法为其定义正确的Eloquent关系。