dポイントプレゼントキャンペーン実施中!

MySQLで認証システムを設計中です。

最初はidにPRIMARY KEY設定おいて
後でemailに追加でPRIMARY KEYを設定することは可能でしょうか?
構造は以下です。
CREATE TABLE members (
id int(11) NOT NULL AUTO_INCREMENT,
email varchar(255) NOT NULL,
password varchar(100) NOT NULL,
picture varchar(255) NOT NULL,
created datetime NOT NULL,
modified timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (id, email)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;
 以上例でPRIMARY KEY (id, email)となっていますが
idのみにPRIMARYを最初は設定する予定です。
この場合 必要に応じて 後で emailにもPRIMARY KEY を追加するとします。
idとemailの両方にPRIMARY KEYの設定となります。
仮にユーザー登録者数が万人単位に増加した場合の状態で
以上のemailの両方にPRIMARY KEYの追加操作を行った場合、何か不具合などのリスク
が高まる可能性はありますか?それとも何にも問題ないか?ですがどちらでしょうか?
他、何かアドバイスがあればよろしくお願いいたします。

質問者からの補足コメント

  • うーん・・・

    後で気づいてのですが
     以下です。

    住民票を1テーブルが日本国とした場合 住民票が PRAIMARY KEY
    だとしたら 1テーブにPRAIMARY KEYは1個しか選択出来ないのは当然ですよね!
    Mysqlだけの問題ではなくてその他のデータベースシステムをそうならないと
    矛盾が生じるからですね!?

    以上ですが住民票が2個存在することができるとしたら、システム上
    運営する上でかなりの弊害が生じることになりますね?
    Amazonユーザーがわざわざ住所変更したのにも関わらず。
    1)昔の住所にAmazonから荷物が発送された。
    2)昔の住所と新住所それぞれに荷物が発送された。
    などの弊害が生じる可能性だってありえる。
    たちまちアマゾンは倒産してしまう。
    なんてことになり得る。
    だから RAIMARY KEYは1テーブルに1個でないと、いけない

    以上考え方は間違っていますか?

      補足日時:2023/10/22 07:08

A 回答 (2件)

>>だから RAIMARY KEYは1テーブルに1個でないと、いけない


以上考え方は間違っていますか?

その考え方で合ってます。

なので、インデックスを増やしたい場合は、create indexで必要なだけ増やします。
ただし、インデックスを増やすと、処理時間が増えるので、効率を考慮して決めます。
なお、こちらは、プライマリーと違って、ダブリキーを許容することもできます。
    • good
    • 3

>>idとemailの両方にPRIMARY KEYの設定となります。



意味不明。
    • good
    • 3
この回答へのお礼

ありがとうございます。
正解でした。
 後で気づいてのですが
 以下です。

住民票を1テーブルが日本国とした場合 住民票が PRAIMARY KEY
だとしたら 1テーブにPRAIMARY KEYは1個しか選択出来ないのは当然ですよね!
Mysqlだけの問題ではなくてその他のデータベースシステムをそうならないと
矛盾が生じるからですね!?

以上ですが住民票が2個存在することができるとしたら、システム上
運営する上でかなりの弊害が生じることになりますね?
Amazonユーザーがわざわざ住所変更したのにも関わらず。
1)昔の住所にAmazonから荷物が発送された。
2)昔の住所と新住所それぞれに荷物が発送された。
などの弊害が生じる可能性だってありえる。
たちまちアマゾンは倒産してしまう。
なんてことになり得る。
だから RAIMARY KEYは1テーブルに1個でないと、いけない

以上考え方は間違っていますか?

お礼日時:2023/10/22 07:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A