鱼尾纹 - 一对一且只有一个

Crow's Feet - One vs One And Only One

有什么区别

一:

只有一个:

One and Only One 用于基数。我认为单独一个不能用于鱼尾纹中的基数。 Source

在我看来,区别在于:

  • 红色实体(国王的宫殿)与单身居民 - 亚瑟王子有关。除了亚瑟之外,没有其他居民可以住在宫殿里。但关系类型仍然是多对一(许多宫殿到一个居民)
  • 但是,任何居民都可能拥有一匹马。同样,关系是多对一 (许多马到特定居民),但表现不同。 (骑士也可以拥有一匹马)。

我认为是在正确的轨道上。

我会用它作为在这里找到的数学类比:https://math.stackexchange.com/questions/247380/analogy-between-one-and-only-one-and-if-and-only-if

"existence of at most one such X that satisfies Y."

例如,考虑以下关系:

学生 Alice 一次只能住一间宿舍。一间宿舍一次只能容纳一名学生(为了这个例子)。明年,爱丽丝将被分配到新的宿舍,届时她今年的宿舍将被分配给新学生。

Alice 只能有一个登录名(例如 a11235),并且该登录名只能分配给 Alice。当 Alice 毕业时,其他人不能分配登录名 a11235。

根据this answer to another question about differences in crow's feet notation,它说"one""many"是模棱两可的。

Wikipedia also uses the double bar, "one and only one" for one artist performing many songs. This doesn't match with , because it doesn't mean that one artist performs all songs like how king arthur inhabits all palaces. It also doesn't match ,因为一位艺术家并不局限于一首歌曲,可以重新分配给其他歌曲。

我的结论是,"many" 可以表示 "zero or many""one or many" 因为它是故意模棱两可的。您未指定它是因为您此时不知道或不关心。同样,"one" 可以表示 "zero or one""one or only one" .看看在这两种表示法中,具体只是将下限指定为 0 或 1。

总而言之,

  • 使用"zero or one"如果可以是0或1,{0, 1}
  • 使用"one and only one"如果可以1,{1}
  • 如果可以"zero or one"[=80=,则使用"one" ],{0, 1} ∪ {1}

仔细想想,"one"==="zero or one"因为{0, 1}{1}{0, 1} ∪ {1} === {0, 1}.

的超集

我认为这样设计符号只是为了平行于 "many" 符号。另外,只是明确地说你对下限不明确。

正确

具体的符号,总是使用两个符号:

  1. 最接近table

    • 这是基数
    • 表示可以有一个还是多个(线条或鱼尾纹)
  2. 另一个

    • 这是模态(又名序数)
    • 它表示最小值可以是零还是一(环或线)

如果只有一行,这仅意味着我们不知道是否可能存在 "zero or one" 或 "one and only one"。

我认为 "one" 和 "one(and only one)" 关系之间的一个(也是唯一一个)区别是独一无二的。

不可转让的机票 PNR 签发给 'Alice (and only Alice)',并且不可转让给任何其他人 但 电影票 ID 发给(并随时由)"one" 人,但在进入电影院之前可以 transferred/sold 发给另一个人。

  1. 当您绝对确定这是一种单一关系时,请使用“唯一”。你完成的图表应该有这个符号,因为它更具体。
  2. 如果您知道自己想要某种单一关系,但您还不完全确定是哪一种,请使用“一个”表示法。也许您正在 ERD 中构思一个想法,并且您非常有信心它是某种“一”关系,但是在您知道它是“零或一”还是“一且唯一”之前,您需要解决一些问题一个”或“一个或多个”关系。在那种情况下,只需输入单数“一”符号,然后计算出您的确切最小值和最大值。