1

私はこの単純なテーブルを持っています:

テーブル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は名前によって頻繁にスキャンされます。

質問 :

マッピングテーブルについては問題ありません。両方の列を合わせて、プライマリ/クラスター化インデックスです。

しかし、私は最初の2つのテーブルについて苦労しています:

  • userIdユーザーは主キーとして列を持つべきだと思います。なぜ ?これは、マッピング テーブルへの結合を通じて使用されるためです。
  • ただし、このテーブルは名前で頻繁にスキャンされるため、名前列にクラスター化インデックスも必要です。

(固有の問題は脇に置いておきます。すべての列が固有であるとしましょう)

この場合のベストプラクティスの決定は何ですか?

4

1 に答える 1