ER图中的实体与类图中的类之间存在着密切的关系。
它们被映射为1到1。没有额外的类或没有额外的实体
这意味着
如下所示
---------------------------------------------
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 -我对理解这两个图表之间的差异没有异议。
发布于 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是个有趣的问题。
发布于 2017-08-08 12:09:36
那么,您可以映射1:1,但是不能使用。1:1路径是第一个快速方法中最简单的。但是,出于性能原因,经常需要在表中引入冗余。因此,在这种情况下,您的表并不表示类告诉的内容。
在这种情况下,您要做的是从更抽象的类模型中派生数据库模型。许多工具都提供了支持此类任务的转换(尽管我更喜欢简单的复制/粘贴,只需要在包之间设置一个<<derived>>关系)。
发布于 2017-08-09 09:28:00
这都取决于你们两种型号的用途。如果类图和ER图都用来表示某物的单一设计或单一实现,那么很明显的问题是,为什么您需要它的两个不同的图片?另一方面,如果它们是两个不同的实现,可能使用不同的技术和执行不同的工作,那么这将对您如何将其中一个映射到另一个实现有一定的影响。不可能对每一种情况都有一个单一的答案。
您已经用relational-database标记了它,尽管它与您的问题没有直接关系。在关系模型中,关系模式是变量,而类是类型。从根本上说,这些都是完全不同的东西,把它们当作等价物的错误被称为第一个大错误。你的问题中没有犯这个错误,但你可能会发现此链接的启发。
https://stackoverflow.com/questions/45567167
复制相似问题