他の回答者がすでに述べたように、ユーザーごとにデータベースを作成することは非常にまれです。しかし、すぐにすべての列に user_id を追加するのも得策ではないかもしれません。
理想的には、さまざまなデータ (この場合はユーザー、マップ、アイテム) 間の関係を適切に設計し、適切なインデックス作成/キーを使用して柔軟で効率的なスキーマを作成する必要があります。
設計例は次のとおりです。
CREATE TABLE user (
int id NOT NULL,
.... // user data fields will come here...
PRIMARY KEY(id)
) ENGINE = InnoDB;
CREATE TABLE map (
int id NOT NULL,
.... // map data fields will come here...
PRIMARY KEY(id)
) ENGINE = InnoDB;
CREATE TABLE item (
int id NOT NULL,
.... // item data fields will come here...
PRIMARY KEY(id)
) ENGINE = InnoDB;
CREATE TABLE map_has_item (
int map_id NOT NULL,
int item_id NOT NULL,
PRIMARY KEY (map_id, item_id),
FOREIGN KEY (map_id) REFERENCES map (id),
FOREIGN KEY (item_id) REFERENCES item (id)
) ENGINE = InnoDB;
CREATE TABLE user_has_map (
int user_id NOT NULL,
int map_id NOT NULL,
PRIMARY KEY (user_id, map_id),
FOREIGN KEY (user_id) REFERENCES user (id),
FOREIGN KEY (map_id) REFERENCES map (id)
) ENGINE = InnoDB;
上記の設計は、アプリケーションに関連する単純なクエリを作成するのに役立ちます。上記のインデックスを使用するすべてのクエリも高速になります。
さらに、潜在的な機能の追加に十分な柔軟性があります。たとえば、他のユーザーが別のユーザーのマップに貢献できるようになった場合、パーミッション/ロール列を user_has_map テーブルに追加し、この列を適切に設定して新しい行を追加できます。
上記で定義した外部キーを改善して、データの整合性を確保することができます (データベースに意味的に正しいデータを保持します)。ON DELETE および ON UPDATE トリガーを設定して、マップまたはユーザーがデータベースから削除されたときのクリーンアップを簡素化できます。外部キーの詳細については、以下のリンクを参照してください。
http://dev.mysql.com/doc/refman/5.6/en/create-table-foreign-keys.html
MySQLの外部キーの基礎?