1. ホーム
  2. mysql

PRIMARY KEYとしてVARCHARを使用することはできますか?

2023-09-30 12:18:23

質問

クーポン/割引を格納するテーブルがあり、coupon_codeカラムを主キーとして VARCHAR .

私の根拠は、各クーポンには固有のコードがあり、私が実行する唯一のコマンドは SELECT ... FROM ... WHERE coupon_code='..'

結合やインデックスを作成することはありませんし、このテーブルに数百以上のエントリが存在することはないと思います。

これで大丈夫だと思うのですが、何か見落としていること、考えていないことがあるのでしょうか。

どのように解決するのですか?

もちろん、RDBMSがそれを可能にするという意味では、できます。という質問に対する回答は、以下のとおりです。 べきである ほとんどの場合、データベースシステムの外部で意味を持つ値は、 を使用すべきです。 ではない は主キーに選ばれるべきではありません。

その値がモデル化しているシステムで一意であることが分かっている場合、テーブルに一意インデックスや一意制約を追加することは適切です。しかし、主キーは一般的に、自動インクリメントの数値やGUIDなど、何らかのquot;meanice"値であるべきです。

データ入力エラーや、変更不可能に見えるものへの頻繁でない変更は、実際に起こります。これらは、主キーとして使用される値で修正することがより困難になります。