1

我想知道在建模一对一关系和继承关系(Table-Per-Type)之间是否有区别在这两种情况下,我们都添加了一个具有唯一约束的外键,或者有时 FK 是 PK 的一部分

在我看来,表结构是相同的,但也许我遗漏了一些东西。

提前致谢。

4

3 回答 3

3

这有几种排列方式。以下是一些: - 假设 A 只能与 B 存在,B 只能与 A 存在。那么关系是一对一的。- 假设 A 可以单独存在,B 可以扩展它,但 B 不能单独存在。那么关系就是继承。- 假设A不能单独存在,但它可以与B或C同时存在。那么关系就是继承。

于 2010-08-16T11:33:24.177 回答
1

在建模方面,实体之间的一对一关系表明它们是同一个关系表。“钥匙,整个钥匙,只有钥匙,所以帮帮我,Codd!”

于 2010-08-16T11:10:00.343 回答
1

这只是对其他人回答的重新措辞,但我总是说区别不在于表结构(实际上是相同的),而在于外键的基数约束:

  • 在这两种情况下,您都有一个表 T1,其外键 F “指向”(即包含来自)另一个表 T2 的键 P;
  • 在这两种情况下,每个 F 都指向不同的P(P 和 F 都是唯一的);
  • 在这两种情况下,每个 F 实际上都指向一个 P(P 和 F 都是非 NULL);
  • 在继承的情况下,并非每个 P 总是作为 F 的值出现;
  • 在一对一对应的情况下,每个 P 总是作为 F 的值出现。
于 2010-08-16T11:45:15.827 回答