约束外行中的值与另一个值匹配?

Constraint that value in foreign row matches another value?

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

// 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 中存储一次。