質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
86.02%
MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

Q&A

解決済

ある資料を基に学びながらPHP MySQLを設計しています。

international
international

総合スコア16

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

2回答

1グッド

0クリップ

447閲覧

投稿2022/11/15 19:53

編集2022/11/16 17:32

ある資料を基に学びながらPHP MySQLを設計しています。
質問があります。イメージ説明
添付画像 を基に自分なりに オリジナル版 を作成中です。
資料には 個人情報である、email があります。
それで、会員登録 後に email でログインする という項目があるのですが
以下がその画面の内容です。

ログインする
メールアドレスとパスワードを記入してログインしてください。

入会手続きがまだの方はこちらからどうぞ。

»入会手続きをする

メールアドレス
sos@sos.com
パスワード
••••••••
ログイン情報の記録
次回からは自動的にログインする
ログインする

(C) H2O Space. MYCOM

以上を以下に変更しようと思います。

ログインする
メールアドレスとパスワードを記入してログインしてください。

入会手続きがまだの方はこちらからどうぞ。

»入会手続きをする

ニックネーム
SOS
パスワード
••••••••
ログイン情報の記録
次回からは自動的にログインする
ログインする

(C) H2O Space. MYCOM

以上ですが
この場合コマンドプロンプトのコマンドですが
よくわからなくて以下としました。

CREATE TABLE `members2` ( int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT, `name` varchar(255) NOT NULL PRIMARY KEY, `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`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ; 追伸です。 以上ですが 実行したところが! ERROR 1068 (42000): Multiple primary key defined エラー 1068 (42000): 複数の主キーが定義されています。 となり、現在検討中です。

ちなみに以上を変更こする前の元の資料は以下です。
変更箇所は → で説明しています。

CREATE TABLE `members` ( →members2に変更 `id` int(11) NOT NULL AUTO_INCREMENT,→PRIMARY KEYを追加しました。 `name` varchar(255) NOT NULL, → ※❶PRIMARY KEYを追加しました。 `email` varchar(255) NOT NULL, → emailを削除しました。 `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`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 AUTO_INCREMENT=3 ;

 以上の
※❶PRIMARY KEYを追加しました。
ですが、name(ニックネーム)を ID の代わりにするので
name varchar(255) NOT NULL PRIMARY KEY,とし
PRIMARY KEYを追加したのはユニーク となり ニックネーム
の重なり防止のために 私が 勝手に追加しました。
これは、正解でしょうか?

以上ですが 初めての開発なのでよくわかりません?
他何かございましたら教えていただけないでしょうか?
よろしくお願いいたします。

international👍を押しています

以下のような質問にはグッドを送りましょう

  • 質問内容が明確
  • 自分も答えを知りたい
  • 質問者以外のユーザにも役立つ

グッドが多くついた質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

気になる質問をクリップする

クリップした質問は、後からいつでもマイページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

下記のような質問は推奨されていません。

  • 間違っている
  • 質問になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

適切な質問に修正を依頼しましょう。

2022/11/16 00:05依頼された後にこの質問は修正されています

こちらの質問が複数のユーザーから「やってほしいことだけを記載した丸投げの質問」という指摘を受けました。

m.ts10806

2022/11/16 02:04 編集

オリジナルを作るのは質問しなくてもこの程度自己解決できるようになってから。その「資料」とやらも理解できてないですよね。 ただ、複数アカウント利用のままはやめてください。規約違反です。ルールを守れない人がルールを作って運用するのは無茶です。 ちなみに幾度となく本人には指摘し、対応を依頼しておりますが全て無視するこの質問者は以下のアカウントの所持者です。皆さん騙されないよう。(運営にも対応依頼しましたが「調査中」でタスク止まってる) https://teratail.com/users/1981225
AbeTakashi

2022/11/16 01:26

まずはそれで試してみたらどうでしょう? 間違えてエラーが出てもパソコンが壊れるとかありませんよ。エラーメッセージを見て学べることがたくさんあります。ここで都度都度聞いていたら学習がぜんぜん捗りません。自分で手を動かして確かめることが早くて答えもすぐに分かります。
international

2022/11/16 17:45

ありがたいご回答を下さいましたありがとうございました。 助かります。 勉強しながら開発中です。 今後ともよろしくお願いいたします。

回答2

1

ベストアンサー

SQL

1`name` varchar(255) NOT NULL PRIMARY KEY, 2↓↓↓ 3`name` varchar(255) NOT NULL UNIQUE,

投稿2022/11/16 01:39

yambejp

総合スコア109141

退会済みユーザー👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

回答へのコメント

international

2022/11/16 17:48

ありがとうございました。 大変勉強になります。 助かります。
international

2022/11/16 18:19

UNIQUE ※一意の例を作る  表を作成するときに、列内の値に重複がないように指定することもできます。  この指定はUNIQUEキーワードを指定します。UNIQUEを指定すると、データ  の挿入、データの更新などで、その列に重複するデータを入れよとするとエラ  -となります。UNIQUEを指定する書式は次のようになります。 CREATE TABLE<表名>( <列名1><データ型>[NOT NULL][UNIQUE]. <列名2><データ型>[NOT NULL][UNIQUE]. <列名3><データ型>[NOT NULL][UNIQUE]. ・・・ );
yambejp

2022/11/17 00:17

単純に主キー(primary key)は2つのカラムに別々に指定ができないというだけの話ですね 複合インデックスという仕組みはありますが、それはAカラムとBカラムの組み合わせが ユニークという仕組みですのでAカラム内およびBカラム内はむしろユニークではなくなってしまいます

1

Function

1f: EMAIL → NAME 2f(email) = name

投稿2022/11/15 20:04

atcoderyellow

総合スコア481

退会済みユーザー👍を押しています

良いと思った回答にはグッドを送りましょう。
グッドが多くついた回答ほどページの上位に表示されるので、他の人が素晴らしい回答を見つけやすくなります。

下記のような回答は推奨されていません。

  • 間違っている回答
  • 質問の回答になっていない投稿
  • スパムや攻撃的な表現を用いた投稿

このような回答には修正を依頼しましょう。

2022/11/16 01:39

こちらの回答が複数のユーザーから「質問に対する回答となっていない投稿」という指摘を受けました。

回答へのコメント

international

2022/11/16 17:49

ありがとうございます。 大変助かります。  変更します。

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
86.02%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問

同じタグがついた質問を見る

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。