【Mysql】主キーが文字列だった。。。

Webエンジニアの雄大です。

ある課題のDB設計のレビューをして、違和感を感じました。

それは、Mysqlの主キーが文字列でした。。。
できなくはないと思うけれど、どうしても違和感を感じました。

そんなことを考えていたら、同じように考えている人がいました。
主キーについて。
http://oshiete.goo.ne.jp/qa/5445280.html

その答えが

『主キーに求められるただ一つの約束は、「ありとあらゆるデータの中から総てのレコードが一意に識別できる」事・・・
ただ、それだけです。
ですから、この世の中に同姓同名の人間は絶対にいないと、あなたのシステムで宣言するのであれば、
氏名欄を主キーにすることに何ら不都合はありません。
ただ、普通、文字で単語として(日本語に限りません。
英語でもフランス語でも事情は一緒)書かれるフィールドって、何かの名前であることが多く
、しかも、名前というのは大概の場合重複するものです。
よって、普通は主キー候補になりません。ただそれだけのことです。
まぁ、こんな事から、普通、ID欄という人間が人為的に、絶対に重複しないことを約束したフィールドを別途作って、それを主キーにしているだけのことです。何らかの名前や属性が重複しないことを証明するよりID一個作る方が楽ですから。
ただ、世の中には、絶対に重複しないことが約束されている文字列欄(または、文字列欄の組)というのも存在しますから、
そういう場合は、わざわざID欄を作るのは不自然ですね。その文字列欄を素直に主キーにするでしょう。』

この説明で、納得しました。文字列を主キーにする場合もあるんですねぇ。
ただ、やっぱり、数値で主キーを作れるのなら、数値にしてほしいなと思いました。

本当はパフォーマンスとかでも見たほうがいいとは思いますが、今日はここまで。

コメント

タイトルとURLをコピーしました