【发布时间】:2020-10-30 08:09:28
【问题描述】:
假设table A 可以属于table B 或table C,但不能同时属于两者。
似乎可以在这种情况下使用外键约束@987654321@。
在 Elixir 的 Ecto 库中如何表示这种关系?
【问题讨论】:
标签: sql postgresql elixir ecto
假设table A 可以属于table B 或table C,但不能同时属于两者。
似乎可以在这种情况下使用外键约束@987654321@。
在 Elixir 的 Ecto 库中如何表示这种关系?
【问题讨论】:
标签: sql postgresql 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)
)
【讨论】: