ユーザーごとに個別のテーブルを作成する必要はありません。いったいどのようにそれを複数のユーザーに拡大する予定ですか?
ユーザーは自分のページにどのようなデータを表示する必要がありますか?グリッドビューをデータベーステーブルに直接マップする必要がないことを理解してください。任意のデータセットにマップできます。したがって、データを永続化するのに意味のある方法(リレーショナルエンティティ)でデータベースに格納し、表示するのに意味のある方法でクエリと表示を行うことができます。
たとえば(これは不自然な例です。どのデータがあるかわからないため)、注文した商品のリストを表示する必要のあるユーザーがいる場合は、次の商品のテーブルを作成しません。各ユーザー。おそらく、エンティティ(ユーザー、製品、注文など)ごとにテーブルがあります。
Users
----------
ID
Name
etc.
Products
----------
ID
Name
etc.
Orders
----------
ID
UserID
DateOrdered
etc.
また、各注文には製品のリストがあり、各製品は多数の注文に対応できるため、これは多対多の関係です。したがって、その関係のリンクテーブルを作成できます。
OrderedProducts
----------
OrderID
ProductID
次に、UIに表示するために、データをクエリして、そのユーザーが注文した製品のみを取得します。
SELECT DISTINCT
Products.ID,
Products.Name,
Orders.OrderedDate
FROM
Users
INNER JOIN Orders ON Users.ID = Orders.UserID
INNER JOIN OrderedProducts ON Orders.ID = OrderedProducts.OrderID
INNER JOIN Products ON OrderedProducts.ProductID = Products.ID
WHERE
Users.ID = @userID
これにより、そのユーザーが注文した個別の製品と、それらがいつ注文されたかのリストが表示されます。(このコードはフリーハンドであることに注意してください。テストに便利なデータベースがありません。)
したがって、各ユーザーには独自の特定の情報が表示されます。
データが使用可能なリレーショナル方式でモデル化されていることを確認する必要があります。エンティティ(通常はデータで表現している実際のもの)を定義し、それらのエンティティを表すテーブルを定義します。自然な方法でそれらを一緒に関連付けます。リレーショナルデータベースは、明確に定義されたデータに対する複雑なクエリの処理に優れています。ユーザーの観点からディスプレイの性質に基づいてデータベースを設計しようとしないでください。保存されている情報の性質に基づいてデータベースを設計してください。