• There seems to be an assumption that there is a single field acting as the PK. This isn't necessarily true.

    As to calling things ID because its easier for developers to write boiler plate code, that sounds like a violation of software engineering principles. We want to aim for loose coupling and strong cohesion.