我正在尝试为MongoDB中的图形创建UML图。
我试过了
但我担心这是错误的,因为source
中的target
和Edge
都应该指向Node
,所以我猜它应该有两个箭头?
另外,我不知道在问号上写什么。
图表可以有多个节点和边缘,因此从Node
到Graph
和Edge
到Graph
的关系是一对多的(即只有是一个与Graph
/ Node
相关联的Edge
个人。此外,只有一个Node
与一个source
相关联,一个Node
与一个target
相关联。
为MongoDB集合绘制这些UML图是否正确,因为它们是非关系数据库?
答案 0 :(得分:0)
我会以这种方式开始建模:
因此,图形由许多通过边连接的节点组成。边缘总是在两个(不一定是不同的)节点之间。通过这种方式,您无法单独模拟具有不同关系的图形。如果需要,您需要在此处使用不同的模型(可能您需要在Graph
和Edge
之间添加关联)。唉,这显示了如何使用UML:开始讨论并讨论问题域。
现在,在这个阶段,这最终如何映射到数据库是完全不相关的。您可以稍后将其映射到关系数据库和非关系数据库。
关于你评论的问题:
+source
和+target
是角色名称。它们与名称为Edge
和source
且类型为target
的{{1}}属性相同。 Node
是公开范围(+
将是私有的;还有2个)-
表示1..*
与Graph
有很多关系。它没有说明这是如何实现的。可以是后来的数组或表达多重性的其他方法。