There are many tables in which you can have an identifier column as a primary key. However, in the case of the M: M relationship table that you describe, it is best practice NOT to use the new identifier column for the primary key.
The RThomas link in his commentary provides excellent reasons why it is best practice NOT to add an identifier column. Here is the link .
The ends will outweigh the pros in almost every case, but since you asked for the pros and cons, I also put a couple of unlikely pros.
against
Adds complexity
It can lead to duplication of relations if you do not apply uniqueness to the relation (which by default will make the primary key).
Probably slower: db should support two indexes, not one.
Pros
All the pros are pretty sketchy
If you had a situation where you needed to use the primary key of a relationship table as a join to a separate table (for example, an audit table?), The join would probably be faster. (As noted, adding and removing records is likely to be slower. Also, if your relationship table is a relationship between tables that themselves use unique identifiers, increasing the speed of using one identity column in a join versus two will be minimal.)
For simplicity, an application may assume that each table it works with has a unique identifier as a primary key. (This is a poor design in the application, but you may not have control over it.) You could imagine a scenario in which it would be better to add some additional complexity to the database than complexity in such an application.
source share