Composite primary keys in N-M relation or not?
Posted
by BerggreenDK
on Stack Overflow
See other posts from Stack Overflow
or by BerggreenDK
Published on 2010-06-03T18:00:01Z
Indexed on
2010/06/03
18:04 UTC
Read the original article
Hit count: 199
Lets say we have 3 tables (actually I have 2 at the moment, but this example might illustrate the thought better):
[Person]
- ID: int, primary key
- Name: nvarchar(xx)
[Group]
- ID: int, primary key
- Name: nvarchar(xx)
[Role]
- ID: int, primary key
- Name: nvarchar(xx)
[PersonGroupRole]
- Person_ID: int, PRIMARY COMPOSITE OR NOT?
- Group_ID: int, PRIMARY COMPOSITE OR NOT?
- Role_ID: int, PRIMARY COMPOSITE OR NOT?
Should any of the 3 ID's in the relation PersonGroupRole be marked as PRIMARY key or should they all 3 be combined into one composite?? whats the real benefit of doing it or not?
I can join anyways as far as I know, so Person JOIN PersonGroupRole JOIN Group gives me which persons are in which Groups etc.
I will be using LINQ/C#/.NET on top of SQL-express and SQL-server, so if there is any reasons regarding language/SQL that might make the choice more clear, thats the platform I ask about.
Looking forward to see what answers pops up, as I have thought of these primary keys/indexes many times when making combined ones.
© Stack Overflow or respective owner