关系与多重性

Relationship vs Multiplicity

我找遍了所有地方,但找不到 table 关系和多重性之间的区别。

看到它们都可以是一对多、多对一等,主要区别是什么? 到目前为止我注意到的唯一区别是多重性以 1..* 格式描述,或者我错了吗?

如果我们有一个 table User 并且 User 可以拥有多个 Blog,这里的关系是什么,多重性是什么?

这两个符号是相关的,但并不相同。

1..*0..* 等表示关系一端 的多重性。一对多实际上是描述关系两端的多样性;即 "one-to-many" 在一端表示 1..1(或可能 0..1),在另一端表示 1..*(或可能 0..*)。

正如您所见,多重表示法允许您表达可选关系与强制关系……"one-to-many" 没有涵盖。


If we have a table User and User can own multiple Blogs, what's the relationship here and what's the multiplicity?

这将被描述为一对多,但在 UML 中,您可以这样表达关系:

                BlogAuthorship

   -------- 1..1              0..* --------
   | User | <--------------------> | Blog |
   --------                        --------

也就是说:

  • 一个博客必须只有一个用户作为作者,并且
  • 用户不一定是任何博客的作者。