3

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

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

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

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

谢谢 :-)

4

5 回答 5

2

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

于 2012-10-10T09:59:16.087 回答
0

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

数据建模的问题是您必须指定希望对数据施加的约束。一些约束(唯一的、外键)更重要,并且与其他约束(“薪水 < 100000”)相比,对问题域的依赖性更小。在大多数情况下,基数将介于criticalbogus之间。

于 2012-10-10T10:33:38.747 回答
0

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

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

于 2012-10-10T10:05:35.150 回答
0

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

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

于 2014-08-27T15:07:46.723 回答
0

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

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

例如:

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

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


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

于 2012-10-10T13:30:05.657 回答