Continuing with the above/earlier I say that even the table to create a many-to-many relationship should have a simple primary key.
- field UserRoleID PK
- field UserID FK
- field RoleID FK
As long as harddisk space is cheap and a simple PK does not create a performance impact there should be no reason to not have a simple primary key.