是否约束外部行中的值与另一个值匹配



我正在努力完成以下任务:

// table_a
{
"id": "aaa",
"name": "abc"
}
// table_b
{
"id": "bbb",
"firstName": "abc"
}
//table_c
{
"table_a_id": "aaa",
"table_b_id": "bbb"
}
// constraint - table_a name matches table_b firstName

这是一个外键约束。或者可以使用触发器实现的约束。

作为外键约束,您需要将名称存储在c中。在伪代码中,这看起来像:

create table a (
id primary key,
name,
unique (name, id)
);
create table b (
id primary key,
firstname,
unique (namename, id)
);
create table c (
table_a_id references a(id),
table_b_id references b(id),
name,
foreign key c_a_name_id (name, id) references (name, id),
foreign key c_b_name_id (name, id) references (firstname, id),
);

名称必须相同,因为名称在c中只存储一次。

最新更新