Crow's Feet - One vs One And Only One

I think n.piskunov is on the right track.

I would use it as the mathematical analogy found here: 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."

As an example, consider these relations: enter image description here

A student, Alice, can only have one dorm room at at time. A dorm room can only house one student at a time (for the sake of this example). Next year, Alice will be assigned a new dorm room, and at that point her dorm room from this year will be assigned to a new student.

Alice can have one and only one login (e.g. a11235) and that login can only be assigned to Alice. When Alice graduates, no one else can be assigned the login a11235.


In my opinion the difference is:

enter image description here

  • Red entity (king's palace) is related to single inhabitant - Prince Arthur. There are no other inhabitants, who may live in palace, except Arthur. But relation type is still Many-to-one (many palaces to single inhabitant)
  • But, any inhabitant may have a horse(s). Relation is, again, many-to-one (many horses to definite inhabitant), but behaves differently. (Knights are also allowed to own a horse).

According to this answer to another question about differences in crow's feet notation, it says "one" and "many" are ambiguous.

Wikipedia also uses the double bar, "one and only one" for one artist performing many songs. This doesn't match with the accepted solution, because it doesn't mean that one artist performs all songs like how king arthur inhabits all palaces. It also doesn't match valem's solution, because an artist isn't tied to one song and can be reassigned to other songs.

My conclusion, is that "many" can mean "zero or many" or "one or many" because it is ambiguous on purpose. You are leaving it unspecified because you don't know or don't care at this point in time. Similarly, "one" can mean "zero or one" or "one or only one". See how in both notations, being specific is just specifying the lower bound as 0 or 1.

So in summary,

  • use "zero or one" if it can be 0 or 1, {0, 1}
  • use "one and only one" if it can be 1, {1}
  • use "one" if it can be "zero or one" or "one and only one", {0, 1} ∪ {1}

If you think about it, "one" === "zero or one" since {0, 1} is a superset of {1} and {0, 1} ∪ {1} === {0, 1}.

I think the notation is designed like this just to parallel the "many" notation. Also, just to explicitly say you are being nonspecific about the lower bound.