【问题标题】:What is the purpose of data modeling cardinality?数据建模基数的目的是什么?
【发布时间】:2012-09-30 18:15:00
【问题描述】:

我了解基数是什么,所以请不要解释它;-)

我想知道,在数据建模中做基数的目的是什么,以及我为什么要关心。

示例:在 ER 模型中,您创建关系并将基数添加到关系中。 我什么时候要在开发过程中进一步使用基数?我为什么要关心基数?

例如,在我完成 ER 模型后,我如何、何时以及在何处使用基数。

谢谢:-)

【问题讨论】:

    标签: database database-design entity-relationship modeling cardinality


    【解决方案1】:

    基数告诉您有关表格设计的一些重要信息。 1:m 关系需要子表中的外键列指向父主键列。多对多关系意味着一个外键指向两个参与者的 JOIN 表。

    【讨论】:

      【解决方案2】:

      基数是两个实体之间关系的重要信息。在对实际表架构进行建模时,您需要它们用于以后的模型。在不知道关系基数的情况下,无法对表和它们之间的键限制进行建模。

      例如,一辆汽车必须正好有 4 个轮子,并且这些轮子必须恰好连接到一辆汽车上。如果没有基数,你可以拥有一辆有 3、1、0、12 等轮子的汽车,而且可以在其他汽车之间共享。当然,根据上下文,这可能有意义,但通常没有意义。

      【讨论】:

        【解决方案3】:

        数据模型是一组约束;没有限制,一切皆有可能。基数是一种(特殊的)约束。在大多数文化中,婚姻是完全两个人之间的关系。 (在某些文化中,这些人必须有不同的性别。)

        数据建模的问题在于,您必须指定希望对数据施加的约束。一些约束(唯一的、外键)更重要,并且与其他约束(“薪水 关键和虚假之间。

        【讨论】:

          【解决方案4】:

          例如,在我完成一个 ER 模型后,我如何、何时以及在何处使用基数。

          在物理创建数据库时,FK 的方向、NULL 能力和数量取决于 ER 图中关系的两个端点上的基数。它甚至可以“添加”或“删除”一些表和键。

          例如:

          • “1:N”关系表示为从“N”表到“1”表的 NOT NULL FK。你不能反其道而行之,保持相同的意思。
          • “0..1:N”关系表示为从“N”到“0..1”表的可空 FK。
          • “1:1”关系由两个 NOT NULL FK(也是键)形成循环引用1或通过将两个实体合并到一个物理表中来表示。
          • “0..1:1”关系由两个 FK 表示,其中一个可以为 NULL(也在键下)。
          • “0..1:0..1”关系由两个 FK(可 NULL 键和下键)表示,或者由具有特制键的联结表表示。
          • “M:N”关系需要一个额外的(所谓的“联结”或“链接”)表。该表的键是从子表迁移的键的组合。

          并非所有基数都可以(轻松)在物理数据库中以声明方式表示,但幸运的是那些往往最有用的...


          1 插入新数据时出现先有鸡还是先有蛋的问题,通常通过将约束检查推迟到事务结束来解决。

          【讨论】:

            【解决方案5】:

            如果您正在创建应用程序的数据层并决定使用 ORM,那么它可能是实体框架。

            有时您需要创建模型和模型图。此时,您将能够提取 ERD,查看您放在图表上的基数并创建正确的关系,以便您的数据层形状与您的数据库形状相匹配。

            【讨论】:

              猜你喜欢
              • 2012-05-24
              • 2011-11-29
              • 2017-09-02
              • 1970-01-01
              • 2016-02-12
              • 1970-01-01
              • 2021-09-09
              • 1970-01-01
              • 2011-02-03
              相关资源
              最近更新 更多