Why is the rejection of composite keys in favor of all tables using a single primary key named id? Cause generally all ORM follow this.
EDIT
The only real limitation that I have run into using composite keys regards using an IN
expression with a subquery. This is a problem, because a subquery in an IN expression must return a single column (at least in T-SQL).
SELECT
emp.Name,
emp.UserDomain,
emp.UserID
FROM
employee emp
WHERE
???? IN (SELECT e.UserDomain, e.UserID FROM ... /* some complex
non-correlated subquery
or CTE */
)
There are always work-arounds, of course, but sometimes it could be an annoyance.
This is hardly a reason to avoid a composite key in places where it makes sense to use one.