0

変数のデータを使用して同じ名前のテーブルを作成するにはどうすればよいですか?

$user_data という変数があり、['username'] 値にアクセスした場合、これを使用して同じ値のデータベース テーブルを作成し、各ユーザーがデータベース内に独自のテーブルを持つことができ、名前が付けられます。データベース内のユーザー名と同じです。

これはテーブルをリンクする正しい方法ですか、それともデータベース データをレイアウトする最良の方法は何ですか。また、テーブルとデータベースは共有データを介してどのように接続されているのでしょうか?

4

3 に答える 3

0

これは本当に悪い考えです。実際には、SQL Antipatternsの本に、このテーマに関する "Metadata Tribbles" という章全体があります (ところで、私のお勧めです。入手してください)。

まず第一に、ユーザーの場合、これによりアプリケーションが追加のインジェクションの脅威にさらされることになります。単純な 1 次および 2 次の両方の SQL インジェクション (詳細はこちらこちらを参照)。これにより、データをインデックス化する能力が低下します。

代わりに、すべてのユーザーの詳細を 1 つ (使用頻度の高いサイトの場合は 2 つ) のテーブルに保持し、外部キーを使用してユーザーを作成した他のコンテンツにリンクする必要があります。

于 2012-06-13T14:40:41.427 に答える
0

これらの行に沿ったもの:

mysql_query("CREATE TABLE {$user_data['username']}(id INT NOT NULL AUTO_INCREMENT);  
于 2012-06-11T05:27:50.653 に答える
0

テーブルの作成を照会できます。

mysql_connect("localhost", "bill", "3pD]gks*dg");
mysql_select_db("user_db");
mysql_query("CREATE TABLE ".$user_data['username']."(some_text varchar(15), some_int int)");

クエリの括弧内に、目的のテーブル構造を配置する必要があります。

于 2012-06-11T05:28:05.277 に答える