Microsoft Access 掲示板

場合分けについて / 10

14 コメント
views
4 フォロー
10

hirotonさん、ご質問ありがとうございます。
分類CDをPRIMARY KEYとする理由を3つほど述べますね。

[理由1.]
PRIMARY KEY はソートに利用することが多いから、です。
文字列ですと、全行パディングされていない限りソートが難しくなります。

また、列数が2つのテーブルに
PRIMARY KEY と INDEX 両方を付与するのは
DBの容量増加、UPSERTの遅延、INDEX破損率の上昇
といったリスクを抱えることになりますので
列数の少ないマスタテーブルでは、設計上の理由から回避したいです。
( 経験則上、テーブルの破損 = INDEXの破損 が圧倒的に多いです )
 
 
[理由2.]
( あくまで可能性として )分類の再編が発生して

分類名分類CD規格
AA1S
AB2M
AC3L
AD4S
AD5M
 
となった場合、分類名が主キーではシステムが破綻します。
 
 
[理由3.]
私自身が サロゲートキー肯定派 であるため。
( ナチュラルキーとサロゲートキーどちらも使います )

サロゲートキーを利用する一因として
理由2.のように、主キーの体系が変化した場合などの影響が
ナチュラルキーに比べて( サロゲートキーのほうが )少なくなります。

通報 ...