【问题标题】:Relationship between entities in database数据库中实体之间的关系
【发布时间】:2011-01-21 22:51:45
【问题描述】:

在描述实体之间的关系时,如果表中出现主键,我理解它是正确的,假设 A 在表 B 中确定它是一对一、一对多还是等等?

如果表 B 有一个带外键的属性,并且表 B 中的每一行都引用了 A 行中的同一个表,那么这是一对多的关系,对吗?

提前致谢

【问题讨论】:

    标签: database-design foreign-keys primary-key entity-relationship foreign-key-relationship


    【解决方案1】:

    您在问题中混淆了表格和行,因此它试图解释更多。

    如果表 B 有一个外键列,并且该列中的每一行都有一个外键引用表 A 中一行的主键列,那么这是一个 一对一一种关系

    但是(这就是您所说的),如果表 B 的行中的多个外键引用另一个表 A 中的 one 行,那么这是 one-to - 多关系,因为有多个 B 指代一个 A。


    示例

    员工被分配了一种计算机。

    表员工:

    ID    Name  Computer
    ==============
    1     Mike   1
    2     Tom    3
    3     Joe    1
    4     Emily  4
    

    台式电脑类型:

    ID    Name
    ==============
    1     HP
    2     Macbook Pro
    3     Dell
    4     Alienware
    

    那么这是一对多的关系,告诉我们一种计算机类型可以分配给许多员工,即 Joe 和 Mike 正在使用 HP 计算机。

    【讨论】:

      【解决方案2】:

      关系是在特定的“表”之间而不是在行之间。表永远不能有重复的主键,但可以有重复的外键。表之间的关系是你需要的。一个 Cardriver 可以有多个车辆,一个车辆可以有多个 Cardrivers,但只能有一个所有者。一辆车只能有一个车牌,一个车牌只能链接到一个特定的汽车..

      更多信息..看看下面的链接..那里有详细描述..

      http://en.wikipedia.org/wiki/Entity-relationship_model

      【讨论】:

        【解决方案3】:

        关系数据库模型实体-关系建模(ER-建模)是两种截然不同的数据建模范式。 ER 建模倾向于将数据模型简化为一些非常简单的概念(例如实体和它们之间的二元关系),而关系数据库模型原则上可以比这更丰富和更强大。在尝试使用 ER 建模术语描述关系数据库概念时,应牢记这种潜在的不匹配,这正是您正在尝试做的事情。

        在关系数据库中,所有关系都以与所有其他信息相同的方式表示:作为关系中的元组中的值(关系或关系变量更熟悉地称为表)。但是,通常情况下,表中最重要或最明显的关系是那些也引用其他表(“外键”)的关系。这些是 ER 建模通常关注的关系。

        对于简单的二元关系,无论是在单个表内还是表之间,请考虑属性 A 和 B 之间关系的规范示例。如果 A 只是相关表中的候选键,那么两者之间的有效关系A 和 B 是一对多(或一对零或多)。如果 A B 都是候选键,则关系是一对一(或一对零或一)。

        【讨论】:

        • 我不太同意这两个模型“完全不同”。可以肯定的是,它们是不同的。但 Chen 打算创建一个近似于关系模型的模型,而没有预先假设数据库将被设计为关系模型。我在分析阶段使用 ER 模型进行概念建模,然后在设计阶段使用关系模型。从一种切换到另一种非常容易,尽管您不一定要利用关系模型的所有功能。
        猜你喜欢
        • 2021-04-07
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-27
        • 1970-01-01
        • 1970-01-01
        • 2014-01-31
        • 1970-01-01
        相关资源
        最近更新 更多