我一直想知道在SQL Server中的M2M表中设置PK的最佳实践或后果是什么.例如:
我有2张桌子
用户
角色
我正在制作一张新桌子
UserRole的
其中有2个字段RoleId和UserID
我现在应该
创建一个UserRoleID作为PK,并使UserID和RoleID成为FK
制作PK UserID和RoleID并将它们设置为FK
别的
我想知道每个选项的性能问题以及推荐的最佳实践.
这些案例的标准程序是有两个索引.唯一的PK是两个字段复合,首先是具有更大基数的字段,即UserID; 和第二个索引只有辅助字段(即RoleID).
然后聚集在更多多记录结果集中可能涉及的任何一个(即,如果查询每个用户的多个角色,或每个角色多个用户).