![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
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の追加操作を行った場合、何か不具合などのリスク
が高まる可能性はありますか?それとも何にも問題ないか?ですがどちらでしょうか?
他、何かアドバイスがあればよろしくお願いいたします。
No.2ベストアンサー
- 回答日時:
>>だから RAIMARY KEYは1テーブルに1個でないと、いけない
以上考え方は間違っていますか?
その考え方で合ってます。
なので、インデックスを増やしたい場合は、create indexで必要なだけ増やします。
ただし、インデックスを増やすと、処理時間が増えるので、効率を考慮して決めます。
なお、こちらは、プライマリーと違って、ダブリキーを許容することもできます。
No.1
- 回答日時:
>>idとemailの両方にPRIMARY KEYの設定となります。
意味不明。
ありがとうございます。
正解でした。
後で気づいてのですが
以下です。
住民票を1テーブルが日本国とした場合 住民票が PRAIMARY KEY
だとしたら 1テーブにPRAIMARY KEYは1個しか選択出来ないのは当然ですよね!
Mysqlだけの問題ではなくてその他のデータベースシステムをそうならないと
矛盾が生じるからですね!?
以上ですが住民票が2個存在することができるとしたら、システム上
運営する上でかなりの弊害が生じることになりますね?
Amazonユーザーがわざわざ住所変更したのにも関わらず。
1)昔の住所にAmazonから荷物が発送された。
2)昔の住所と新住所それぞれに荷物が発送された。
などの弊害が生じる可能性だってありえる。
たちまちアマゾンは倒産してしまう。
なんてことになり得る。
だから RAIMARY KEYは1テーブルに1個でないと、いけない
以上考え方は間違っていますか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- MySQL エラー 1068 (42000): 複数の主キーが定義されていますエラー 2 2022/11/17 04:36
- MySQL `picture` varchar(255) のコマンドで間違いないでしょうか? 1 2022/11/21 04:08
- MySQL my_itemsテーブルのIDにAUTO_INCREMENT を追加ができるかで 1 2023/01/03 09:09
- MySQL PHPとMySQLを使った掲示板の作り方 1 2022/06/02 13:00
- MySQL SQLのSELECT文について 2 2021/10/18 17:16
- MySQL SHOW CREATE TABLE posts;これって何ですか? 3 2022/08/28 22:57
- MySQL テーブル作成です。どこかのスペルが間違っているか記号など スペースかな? 1 2022/10/01 05:08
- MySQL あと、MySQLの文字コードはutf8 気になりますね 1 2022/12/01 07:22
- MySQL MYSQL エラー 2 2022/10/18 11:37
- PHP php エラー 2 2022/10/23 16:43
このQ&Aを見た人はこんなQ&Aも見ています
-
プロが教えるわが家の防犯対策術!
ホームセキュリティのプロが、家庭の防犯対策を真剣に考える 2組のご夫婦へ実際の防犯対策術をご紹介!どうすれば家と家族を守れるのかを教えます!
-
これの対応OSを教えて下さい。php-8.3.0-src.zip
PHP
-
2023年10月25日現在のMAMP 最新バージョンを教えて下さい。
MySQL
-
C言語って古いですか?
C言語・C++・C#
-
-
4
C言語関数違いについて。
C言語・C++・C#
-
5
写真のプログラムは、1からnまでの、全整数の積すなわち階乗値を求めて返却する関数を作成したいのですが
C言語・C++・C#
-
6
C言語について。
C言語・C++・C#
-
7
ストリーム 意味について。
C言語・C++・C#
-
8
C言語 バッファについて。
C言語・C++・C#
-
9
Excel VBAマクロをマスターするのに、どれ位時間掛かりますか?
Visual Basic(VBA)
-
10
C言語について。
C言語・C++・C#
-
11
バッファリングについて。
C言語・C++・C#
-
12
C# でソフト開発をした事のある人がC++を学習することになればかなり早く言語を身につけられる可能性
C言語・C++・C#
-
13
C言語について。
C言語・C++・C#
-
14
C#でゲームのチートを作ることは可能なのでしょうか? C++でプログラムされているのにC#という言語
C言語・C++・C#
-
15
C言語について
C言語・C++・C#
-
16
プログラミング言語の制作方法について
C言語・C++・C#
-
17
Program FilesとProgram Files (x86) の違いを教えて下さい。
Windows 10
-
18
VisualStudio2022でC言語プログラムで全角文字を使用すると不明なエラーが表示される
C言語・C++・C#
-
19
gcc13.2のバグ?
C言語・C++・C#
-
20
プログラミングについての質問です。 #include <stdio.h> #include <std
C言語・C++・C#
関連するカテゴリからQ&Aを探す
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
#1062 - '0' は索引 'PRIMARY' ...
-
日本の全市区町村を人口密度が...
-
下の画像はSQLの4大命令の性質...
-
データベースの複製の仕方(mysql)
-
SQLでカラムを追加し、条件に合...
-
select *, `人口(男)`AND`人口(...
-
テーブル名が可変の場合のクエ...
-
SQLについて教えて下さい。 SEL...
-
テーブル作成です。どこかのス...
-
MAMPで80ポートが使用されている...
-
同一のユーザー、同一商品のと...
-
SQLです。こんな感じですか?あ...
-
書籍の内容はまともでしょうか?
-
SQLで日付別のIDを生成するには
-
mysql>status で
-
下記の問合せを行うクエリを、P...
-
下記の問合せを行うクエリを、P...
-
エラー 1068 (42000): 複数の主...
-
MySQLのテーブル作成でハイフン...
-
「重複を間引いた数」をcountし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
後でemailに追加でPRIMARY KEY...
-
sqlの中で、 例えば条件句で AN...
-
VIEWに対してWHERE句をつける
-
Null値が入れられない
-
空白文字を含む文字列データの検索
-
NULLを含む列の足し算
-
MySQLの特定のカラムの内容を全...
-
nullと同じく空白をCountしない...
-
SQL任意に並び替えをしたい
-
SQLでLIMIT句を入れるとエラー...
-
SQL文を入力したらエラー
-
テーブル作成時に、「`id` int(...
-
MySQLで関連したデータを横に並...
-
コマンドプロンプト 複数の実...
-
JOIN使ってないのに、JOIN操作...
-
Mysql 同一テーブルの複数「別...
-
count()の結果を別の計算で使う...
-
MySQLで項目の反復定義(COBOL...
-
3つのテーブルから、データが...
-
phpとSQLで複数条件で検索する...
おすすめ情報
後で気づいてのですが
以下です。
住民票を1テーブルが日本国とした場合 住民票が PRAIMARY KEY
だとしたら 1テーブにPRAIMARY KEYは1個しか選択出来ないのは当然ですよね!
Mysqlだけの問題ではなくてその他のデータベースシステムをそうならないと
矛盾が生じるからですね!?
以上ですが住民票が2個存在することができるとしたら、システム上
運営する上でかなりの弊害が生じることになりますね?
Amazonユーザーがわざわざ住所変更したのにも関わらず。
1)昔の住所にAmazonから荷物が発送された。
2)昔の住所と新住所それぞれに荷物が発送された。
などの弊害が生じる可能性だってありえる。
たちまちアマゾンは倒産してしまう。
なんてことになり得る。
だから RAIMARY KEYは1テーブルに1個でないと、いけない
以上考え方は間違っていますか?