Primary keys, IDs, references. The first attribute we add to our objects. They don't exist in the real world.
Problems
Coupling
Accidental Implementation
Bijection Principle Violation.
Solutions
Reference object to objects.
Build a MAPPER.
Only use keys if you need to provide an external (accidental) reference. Databases, APIs, Serializations.
Use dark keys or GUIDs when possible.
If you are afraid of getting a big relation graph use proxies or lazy loading.
Don't use DTOs.