表 A 包含引用“其他三个表(B、C、D)之一的记录”的数据
我怎样才能建立它们之间的关系?
最简单的方法是定义一个列 'reference_id' 来引用(记录的)id 和一个引用这三个表之一的列表,并使用“if conditions”连接到目标记录,但我认为必须有处理这种情况的更好方法。
最佳答案
这个问题有三种解决方案。
您已经使用引用列提到的一个。
第二种解决方案是像 Roman 提到的那样在应用程序级别执行此操作。
另一种是在表 A
中包含三列,每列对应 ( B
, C
, D
)。
当它引用表 B
中的记录时,填充 b_id
列并将 c_id
和 d_id
设置为 null。这样你也可以使用外键。