0

我有两个具有一对多关系的表。表 1 的主键是表 2 中的外键,但不是主键。主键是自动生成的。关系应该是一对一的关系,而不是一对多的关系。

这是我想要改变的,但我相信它已经自动默认为一对多关系,因为外键不是这个表的主键

我怎样才能做到这一点 ?

4

1 回答 1

1

如果两个表之间是一对一的关系,则意味着对于T1中的一条记录,T2中最多有一条对应的记录,反之亦然。

在您的情况下,如果您想确保 t2 中的一条记录(语义记录,即忽略 t2 的主键)在 t1 中最多有一个对应记录,您应该在 t2 中的所有语义列上添加一个 UNIQUE 约束(即语义上描述 t2 记录的列,不包括主键和外键)。这样,您将确保 t2 中的一条记录不会指向 t1 中的两条或更多条记录。

如果您想确保一对一关系的另一个方向(即 t1 中的记录最多被 t2 中的一条记录引用),您应该使 t2 中的外键唯一。

于 2012-08-19T23:17:59.313 回答