質問: MySQLでのテーブル管理について質問です。 SNSやネットショッピングでは必ず個人のアカウントの取得を行ったうえでサイトの利用を行うように設計されていると思いますが、この新規作成されたアカウントの作られ方について質問です。 ある人がアカウントを新規に作成すると、 1.そのたびに、create table ...の文が実行されて、その個人用のテーブルが作成されるのでしょうか。 2.それとも、個人情報テーブル、購入履歴テーブル...のようにテーブルの数は固定でそのテーブルに逐一追記されていくものなのでしょうか。 よろしくお願いいたします。
回答: これってアカウント情報の管理に限った話ではないですが、通常は後者(2.)のような使い方をします。 これがピンと来ないようであれば、まずはリレーショナルデータベースの入門書(Webにも膨大な解説がある)でごく簡単な例題を幾つか見てみる事をお勧めします。 そうすれば、リレーショナルデータベースを使うと何がどの様に便利なのか、そのためにはテーブルをどの様に設計すれば良いのか、難しい理論はさて置き「雰囲気」位は感じ取れると思います。 そうすると、個々のユーザー毎に別々のテーブルを作る事がいかにナンセンスな事かが分かると思います。 もしユーザー毎にテーブルが異なるとしたら、あるユーザーがログインしようとしたとき、ログイン情報(例えばパスワード)が正しいかどうかを確認するために、どのテーブルを参照すべきかをどうやって知るのでしょうか?