表 A 包含引用“其他三个表(B、C、D)之一的记录”的数据
我怎样才能建立它们之间的关系?
最简单的方法是定义一个列 'reference_id' 来引用(记录的)id 和一个引用这三个表之一的列表,并使用“if conditions”连接到目标记录,但我认为必须有处理这种情况的更好方法。

最佳答案

这个问题有三种解决方案。

您已经使用引用列提到的一个。
第二种解决方案是像 Roman 提到的那样在应用程序级别执行此操作。
另一种是在表 A 中包含三列,每列对应 ( B , C , D )。
当它引用表 B 中的记录时,填充 b_id 列并将 c_idd_id 设置为 null。这样你也可以使用外键。

10-08 17:15