SQL Server中PK的最佳实践

Rus*_*rry 7 sql sql-server database-design sql-server-2005 primary-key

我一直想知道在SQL Server中的M2M表中设置PK的最佳实践或后果是什么.例如:

我有2张桌子

  • 用户
  • 角色

我正在制作一张新桌子

  • UserRole的

其中有2个字段RoleId和UserID

我现在应该

  1. 创建一个UserRoleID作为PK,并使UserID和RoleID成为FK
    • 制作PK UserID和RoleID并将它们设置为FK
    • 别的

我想知道每个选项的性能问题以及推荐的最佳实践.

dkr*_*etz 10

这些案例的标准程序是有两个索引.唯一的PK是两个字段复合,首先是具有更大基数的字段,即UserID; 和第二个索引只有辅助字段(即RoleID).

然后聚集在更多多记录结果集中可能涉及的任何一个(即,如果查询每个用户的多个角色,或每个角色多个用户).