データベースについて勉強していた時RDBMSの制約というのがでてきた。
その中に「一意性制約(UNIQUE KEY)」というのがあるらしい。
※ここでは一意性制約(UNIQUE KEY)ではなくプラマリキーが正しい
「なるほど。わからん。」
「一意 = 唯一無二」と置き換えて
ここでよくあるユーザー登録を例に制約の必要性について考えてみる。
つまり、こういうことらしい
・サイトを利用するために当たり前のようにユーザー登録がありメールアドレスなど個人のデータを入力して登録する。
・その際サイトの裏側ではデータベースに入力したデータ(ここではメールアドレスにあたる)が入る。
・その後サイトを利用するためにログインをする必要がある。このとき登録されているかどうか。つまり、データベースにデータ(登録したメールアドレス)がはっているかどうか確認する。
・確認するためのデータが必要で(ここではメールアドレス)そのデータは唯一無二でなければ特定することができない。(同じメールアドレスが複数あったらどのデータを呼び出したらいいかわかんなくなっちゃう)
↑ではメールアドレスが主キーになっている。
だから一意が保証されている(主キー)必要がある!
Railsだとidとか特定できるデータであれば主キーにあたる。
納得した―。今日もいい勉強したな!