hirotonさん、ご質問ありがとうございます。
分類CDをPRIMARY KEYとする理由を3つほど述べますね。
[理由1.]
PRIMARY KEY はソートに利用することが多いから、です。
文字列ですと、全行パディングされていない限りソートが難しくなります。
また、列数が2つのテーブルに
PRIMARY KEY と INDEX 両方を付与するのは
DBの容量増加、UPSERTの遅延、INDEX破損率の上昇
といったリスクを抱えることになりますので
列数の少ないマスタテーブルでは、設計上の理由から回避したいです。
( 経験則上、テーブルの破損 = INDEXの破損 が圧倒的に多いです )
[理由2.]
( あくまで可能性として )分類の再編が発生して
分類名 | 分類CD | 規格 |
---|---|---|
AA | 1 | S |
AB | 2 | M |
AC | 3 | L |
AD | 4 | S |
AD | 5 | M |
となった場合、分類名が主キーではシステムが破綻します。 | ||
[理由3.] | ||
私自身が サロゲートキー肯定派 であるため。 | ||
( ナチュラルキーとサロゲートキーどちらも使います ) |
サロゲートキーを利用する一因として
理由2.のように、主キーの体系が変化した場合などの影響が
ナチュラルキーに比べて( サロゲートキーのほうが )少なくなります。
通報 ...