我有这个简单的表:
桌子Users
userId | name
---------------------
1 'a1'
2 'a2'
3 'a3'
4 'a4'
5 'a5'
桌子Cities
cityId | name
---------------------
1 'c1'
2 'c2'
3 'c3'
4 'c4'
5 'c5'
每个用户可以在多个 城市。:
所以映射表是:
userId | CityId
------------------------------------
1 4
1 4
1 4
2 5
5 6
表users
按名称大量扫描。
问题 :
对于映射表,我没有问题。两列一起是主/聚集索引。
但我在前两张桌子上苦苦挣扎:
- 我认为用户应该将
userId
列作为主键。为什么 ?因为它是通过连接到映射表来使用的。 - 但我还需要名称列上的聚集索引,因为该表按名称进行了大量扫描。
(抛开独特的问题。假设所有列都是唯一的)
这种情况下的最佳实践决定是什么?