Given an Equipment entity, it has a location, generically called Whereabouts. This could be a reference to:
a User entity (the employee who will use and be responsible for the eqipment for the next week).
a Vendor entity (if the equpment is getting serviced).
a StorageLocation entity (if the equpment is put away).
The piece of equpment can only be in one place at a time, even if that place is not a physical location.
Is it better:
to have Equipment with three columns (UserId, VendorId, StorageLocationId) such that one of these columns must be not null while the other two must be null (enforced by a constraint)?
or to have Equipment with a WhereaboutsId that references some type supertype table that then links to User, Vendor, and StorageLocation as subtype tables, even though they share no other common attributes?
or something else?