2012-04-15 8 views
0

私は、ユーザー用の情報を収集して格納するWebサイトを開発しています。ユーザー登録時にMySQLテーブルを作成する

ウェブサイトを使用して検索している情報を保存するために、登録時に個々のユーザーに固有のテーブルを作成する必要があります。作成されたテーブルの名前は、新しく登録されたユーザーのユーザー名の名前になります。

ユーザーがログインして検索を実行すると、収集されたデータは、MySQLの挿入クエリを使用してデータベースに格納されます。テーブル名は、ログインユーザーのユーザー名名。

私はアマチュア開発者であり、ソリューションを見つけようとあらゆる場所を検索しましたが、私の問題と同様に遠隔で何かを均等に見つけることはできません。

ありがとうございました! 、そして、

$fullname="$fname"."_"."$lname"; 

このクエリは、私のプロジェクトからである

$sql="CREATE TABLE $fullname(ALL THE COLLUMNS YOU WANT TO CREATE)"; 
$result1=mysql_query($sql, $db_link); 

その名前のテーブルを作成するには、このようなクエリを記述します。

+5

ユーザーごとのテーブルは、かなり大きな設計です。いいえいいえ。なぜあなたは単一のテーブルを持ち、1人のユーザーにつき1つのレコードしか持てませんか? –

+1

あなたは尋ねたことはありませんが、ユーザーのためのテーブルを作成することをお勧めしません。なぜ、ユーザーの名前または識別子を持つ1つの巨大なテーブルを持っていないのですか? –

+1

"個々のユーザーに固有のテーブルを作成する必要があります。" ** NO。 STOP。**あなたがしていることを再考してください。 –

答えて

1

オンザフライでテーブルを作成することは、それが価値があるというよりもトラブルであり、SQLデータベースを使用することで非常に泳いでいます。

あなたが言及しているアプローチについてのドキュメントが見つかりませんでした理由は、この問題は一般的に(ほぼ例外なく)、すべてのデータを1つ以上のテーブルに持ち、行が関連付けられている(ユーザー)。あなたの場合、これは電子メールアドレス、ユーザー名、または連続番号だけかもしれません。

など。

| user_id | email | first_name | last_name | fave_color | 
-   -   -    -    -    - 
|  1 | "[email protected]" | "anton"  | "aardvark" | "red"  | 
|  2 | "[email protected]" | "miles"  | "o'brien" | "infrared" | 
|  ... |   |    |    |    | 
+1

外部キー4evar! –

+1

これは、私の提案した方法よりもはるかに論理的です。だから私は、検索結果と同じ行にテーブルにユーザーの一意の識別子を挿入し、ユーザーが収集したデータを見たいときに、私はMySQLの選択クエリの変数としてユーザーの一意の識別子を使用します。 – Martin1184

+1

私はuser_emailをユーザーの主キーとして使用しません。ユーザーが電子メールアドレスを変更すると、データが失われたり、参照整合性が失われたり(悪い)、すべてのレコードに対して大規模な更新が必要になります(悪い)。 Ignacioの言い換えに、 "代理キー4evar!" – wjl

0

まずは次のようにユーザーから名前を取ります。 wampserverでうまく動作します。

+2

世界中のすべてのジョン・スミスの人々が、私的なデータが他のジョン・スミスと共存すると、あなたに感謝すると確信しています。 'Miles O'Brien'がサインアップすれば、プロジェクトも爆発するでしょう。それで、あなたのために-1。 –

+0

ああ男。貧しい人たちのことを考えなかった! – aaaidan

関連する問題