首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类图中的类与ER图中的实体之间的映射?

类图中的类与ER图中的实体之间的映射?
EN

Stack Overflow用户
提问于 2017-08-08 11:30:48
回答 3查看 1K关注 0票数 2
  • ER图表示数据模型的抽象表示,
  • 类图表示系统的静态结构和行为。
  • ER图的主要组成部分是实体,
  • 类图的主要构建块是类,

ER图中的实体与类图中的类之间存在着密切的关系。

它们被映射为1到1。没有额外的类或没有额外的实体

这意味着

  • ER图中的每个实体在类图中都有一个类。
  • 对于类图中的每个类,ER图中都有一个实体。

如下所示

代码语言:javascript
复制
---------------------------------------------
class diagram                    ER Diagram
---------------------------------------------
class A          <---->          Entity A
class B          <---->          Entity B
class C          <---->          Entity C
class D          <---->          Entity D
class E          <---->          Entity E

类图中的类和ER图中的实体之间总是有1到1的映射吗?

有什么特别的时刻吗?

如果有例外的时刻,什么时候会发生这种情况?

P.s -我对理解这两个图表之间的差异没有异议。

EN

回答 3

Stack Overflow用户

发布于 2017-08-09 10:05:55

系统开发人员可以选择在类和数据库表之间有1:1的表示。这种映射是一种选择,不是必须的。在实际项目中使用这种方法是很常见的。OO世界自然不涉及RDBMS中的关系类型。例如,不能在类中自动强制执行FK。您所做的决定非常重要,因为您将要构建的许多类都将依赖它。在稍后阶段改变你的想法将是非常昂贵的。

RDBMS和OO世界是两个不同的世界。事实上,有些对象数据库完全支持OO (例如:Wiki对象-数据库)。分歧超出了你提出的问题。已经创建了一组工具来解决其中的一些差异,或者至少充当这两个世界之间的桥梁。有关此概念的一些背景信息,请参阅例如:Wiki对象关系映射

为了更多地了解OO世界和关系词之间的差异,您可能需要检查以下内容:Wiki对象-关系阻抗失配

在这个主题上还有许多其他引用,例如:is-there-really-object-relational-impedance-mismatch

也许问一下什么时候不用1:1 mapping...This是个有趣的问题。

票数 1
EN

Stack Overflow用户

发布于 2017-08-08 12:09:36

那么,您可以映射1:1,但是不能使用。1:1路径是第一个快速方法中最简单的。但是,出于性能原因,经常需要在表中引入冗余。因此,在这种情况下,您的表并不表示类告诉的内容。

在这种情况下,您要做的是从更抽象的类模型中派生数据库模型。许多工具都提供了支持此类任务的转换(尽管我更喜欢简单的复制/粘贴,只需要在包之间设置一个<<derived>>关系)。

票数 0
EN

Stack Overflow用户

发布于 2017-08-09 09:28:00

这都取决于你们两种型号的用途。如果类图和ER图都用来表示某物的单一设计或单一实现,那么很明显的问题是,为什么您需要它的两个不同的图片?另一方面,如果它们是两个不同的实现,可能使用不同的技术和执行不同的工作,那么这将对您如何将其中一个映射到另一个实现有一定的影响。不可能对每一种情况都有一个单一的答案。

您已经用relational-database标记了它,尽管它与您的问题没有直接关系。在关系模型中,关系模式是变量,而类是类型。从根本上说,这些都是完全不同的东西,把它们当作等价物的错误被称为第一个大错误。你的问题中没有犯这个错误,但你可能会发现此链接的启发。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45567167

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档