我正在设计一个名为answers
的数据库表。字段为source_type
和source_id
等。source_type
是"问题"或"评论",这些是表格。现在问题是,我希望source_id
表中的answers
引用id
中的questions
或id
中的comments
,具体取决于source_type
字段。
所以在正常情况下,这将是:
$table->foreign('source_id')->references('id')->on('questions');
或者
$table->foreign('source_id')->references('id')->on('comments');
但是,我怎么能不确定如何在两个表中添加限制?
答案 0 :(得分:1)
在这种情况下,其中一个选项是定义2个字段question_id和comment_id。这两个都是各个表的可空外键。
如果设置了其中一个,那么您就知道它是哪种类型。
您也无法定义source_id的外键,但是存在更高的数据损坏风险,您无法为其定义正确的Eloquent关系。