Ecto - table A 上的外键约束用于 table B 或 C,但不是 B 和 C

Ecto - Foreign key constraint on table A for table B or C, but not both B & C

假设 table A 可以属于 table Btable C,但不能同时属于两者。

看来这种场景可以使用外键约束in SQL Server

如何在 Elixir 的 Ecto 库中表示这种关系?

您可以将其构造为为每个外键约束使用单独的列,然后保证只填充一个:

create table A (
    . . . 
    b_id int,
    c_id int,
    foreign key (b_id) references b(b_id),
    foreign key (c_id) references c(c_id),
    check (b_id is null or c_id is null)
)