【问题标题】:Ecto - Foreign key constraint on table A for table B or C, but not both B & CEcto - 表 B 或 C 的表 A 上的外键约束,但不是 B 和 C
【发布时间】:2020-10-30 08:09:28
【问题描述】:

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

似乎可以在这种情况下使用外键约束@​​987654321@。

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

【问题讨论】:

    标签: sql postgresql elixir ecto


    【解决方案1】:

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

    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)
    )
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2011-02-22
      • 2015-06-12
      • 2011-08-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-15
      相关资源
      最近更新 更多