Well I’m back…I’m still fumbling with them uniqueness constraints. I think my misunderstanding evolves from confusing the uniqueness idea with what might be termed “identifier”. You see till now we used to denote an identifier value (usually an EmpID for employees or ModuleID for modules, etc.) which we called unique as it is unique in the whole system. Now ORM’s uniqueness constraint marks a combination of entities as unique (Academic holds a Chair), from the perspective of one of the participants (e.g. the Academic, who is allowed to hold one Chair at a time) or both (if only one Academic can hold each Chair, as may be indicated by two uniqueness constraint, one above both roles of the binary).
But how can I express the identifier concept? How can I express the fact that one (or more) entity/value is the identifier of that Academic in my system? The uniqueness constraints wouldn’t suffice, as obviously I will not use the Chair as the identifier of an Academic, but the EmpID (as I do with ll the rest of the Employees, all of whom has an EmpID but not are Academic and hold Chairs).
So what am I getting wrong here?