1. Breadcrumb Disambiguation
It's all about providing orientation IMO, or more specifically "good enough" orientation.
In contrast, a URL provides both orientation (ideally) and a perfectly unambiguous, unique identifier (by definition).
ItThus, for bread crumbs, it doesn't matter for users if there is a John Smith
under Oracle >
, and a different John Smith
under Microsoft >
. (Caveat: if my assumption is incorrect for your use-case, just apply the rule below to all duplicate names.)
What does matter is that if there are two John Smith
s under Oracle >
. You definitely need to at-a-glance disambiguate between the two, in case someone needs to know which John Smith they're looking at.
The simplest method would be, in your data layer, to track duplicate names
UID | DID | Name | Company
(DID = Duplicate ID, default to 1)
234 | 1 | John Smith | Oracle |
235 | 1 | Mary Sue | Oracle |
236 | 2 | John Smith | Oracle |
237 | 1 | Vivesh Patel | Oracle |
238 | 3 | John Smith | Oracle |
Now if you're on the profile for John Smith, UID: 238
, your breadcrumb would be like
Oracle > John Smith (3) > Projects
And if you're on the profile for Mary Sue, UID: 235
:
Oracle > Mary Sue > Projects
No need to indicate her duplicate number (1)
because she is unique in this subset of data, and that would only clutter your display.
2. Breadcrumb Length
Simply use a function to truncate strings with ...
that are too long for your GUI to handle. This is a common convention.
Example:
Microsoft > Alexander Petr... (2) > Projects