最大長20文字の英数字データがあります。このデータをタイプNVARCHAR(20)
の列に格納します。NVARCHARまたはINT UNIQUE制約付きプライマリキー
これらのデータはCODESであり、一意でなければならないため、私はそれを主キー列にすることにしました。
しかし、another questionに質問すると、誰かがINT
列を主キーとして使用するように「提案」しています。
あなたはどう思いますか? INT
プライマリキーを使用し、UNIQUE
という制約または現在のデザインの列を追加しますか?
NVARCHAR(20)
カラムを検索して重複を避ける必要があるため、使用しない新しいカラムを追加すると思います。言い換えれば、私のwhere節の99%にはNVARCHAR
という列があります。
INTプライマリキーを使用する予定がない場合、ここにどのような利点が追加されるのか分かりません。私のすべての操作は、その 'NVARCHAR(20)'カラムで動作します。 – VansFannel
こんにちは、INT列にsring入力のハッシュ値を挿入することができます(oracleではORA_HASH関数を使用してテーブル値(ORA_HASH( 'somt string))に挿入することができます)。私はこのようなことをすることができます "myIntColumn = ORA_HASH( 'INPUT STRING) – elirevach
@VansFannel。。。インデックスの参照と外部キー参照の両方に対して、より効率的な格納。 –