代码之家  ›  专栏  ›  技术社区  ›  pleasedontbelong

在数据库中建立“一对一”关系与建立“继承”关系相同?

  •  0
  • pleasedontbelong  · 技术社区  · 15 年前

    我想知道,在建模一对一关系和继承关系(每种类型的表)之间是否存在差异,在这两种情况下,我们都添加了一个具有唯一约束的前导键,或者在某些情况下,fk是pk的一部分

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

    事先谢谢。

    3 回复  |  直到 15 年前
        1
  •  1
  •   reinierpost    15 年前

    这只是对其他人正在回答的问题的改写,但我总是说区别不在表结构中(实际上是相同的),而是在外键的基数约束中:

    • 在这两种情况下,您都有一个表T1,其中一个外键f“指向”(即包含来自)另一个表t2的键p;
    • 在这两种情况下,每个f都指向 不同的 P(P和F都是唯一的);
    • 在这两种情况下,每个f实际上指向一个p(p和f都是非空的);
    • 在继承的情况下,不是每一个p都以f的值出现;
    • 在一对一通信的情况下,每一个p总是以f的值出现。
        2
  •  3
  •   Michael Burrows    15 年前

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

        3
  •  1
  •   user359040    15 年前

    当涉及到建模时,实体之间的一对一关系表示它们是相同的关系表。”钥匙,整个钥匙,除了钥匙什么都没有,所以帮帮我!”

    推荐文章