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 B
或 table 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)
)
假设 table A
可以属于 table B
或 table 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)
)