0

ユーザーがログインした後、登録された各ユーザーが独自のグリッドビューとコントロールをグリッドビューにバインドするページが必要です。ページには、 gridview にバインドされた sqldatasource が含まれます。

ユーザーごとにデータベースに新しいテーブルを作成し、ユーザーがログインした後にフォームロードでユーザー名を取得し、テーブル名を取得し、sqldatasourceバインドをテーブル名に置き換え、テーブル名の他のコントロールフィールドを置き換えることを考えました彼のもの。

または、これを行う他の方法はありますか?

4

4 に答える 4

0

これは、ユーザーごとにテーブルを作成するのは論理的ではありません。すべてのユーザー情報をテーブルに保存する方が適切で高速です。これにより、ユーザーIDを持つユーザー情報用のテーブルと、ユーザーデータ用の別のテーブルを作成できます。それらの間で出荷

于 2012-06-25T07:36:56.610 に答える
0

ユーザーごとに個別のテーブルを作成する必要はありません。いったいどのようにそれを複数のユーザーに拡大する予定ですか?

ユーザーは自分のページにどのようなデータを表示する必要がありますか?グリッドビューをデータベーステーブルに直接マップする必要がないことを理解してください。任意のデータセットにマップできます。したがって、データを永続化するのに意味のある方法(リレーショナルエンティティ)でデータベースに格納し、表示するのに意味のある方法でクエリと表示を行うことができます。

たとえば(これは不自然な例です。どのデータがあるかわからないため)、注文した商品のリストを表示する必要のあるユーザーがいる場合は、次の商品のテーブルを作成しません。ユーザー。おそらく、エンティティ(ユーザー、製品、注文など)ごとにテーブルがあります。

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

これにより、そのユーザーが注文した個別の製品と、それらがいつ注文されたかのリストが表示されます。(このコードはフリーハンドであることに注意してください。テストに便利なデータベースがありません。)

したがって、各ユーザーには独自の特定の情報が表示されます。

データが使用可能なリレーショナル方式でモデル化されていることを確認する必要があります。エンティティ(通常はデータで表現している実際のもの)を定義し、それらのエンティティを表すテーブルを定義します。自然な方法でそれらを一緒に関連付けます。リレーショナルデータベースは、明確に定義されたデータに対する複雑なクエリの処理に優れています。ユーザーの観点からディスプレイの性質に基づいてデータベースを設計しようとしないでください。保存されている情報の性質に基づいてデータベースを設計してください。

于 2012-06-25T07:37:55.593 に答える
0

ユーザーごとに個別のテーブルは必要ありません。

ユーザー名を格納するために、テーブルの 1 つに追加のを追加してみませんか。このようにして、各レコードは特定のユーザーに属するようにマークされます。ログに記録されたユーザーのデータを読み取ることは、テーブルの単純なWhere句の問題です。

于 2012-06-25T07:32:21.147 に答える
0

いいえ、そうではありません。ユーザーごとにテーブルを作成することはできません。データベースに 10,000 人のユーザーが含まれているという意味ではなく、10,000 人のユーザーがいると考えてください。

すべてのユーザー情報が保存されるテーブルを 1 つだけ作成する必要があります。ユーザー名や電子メールなどのIDをデータベースに保存する必要があります。ユーザーがユーザー名または電子メールでアプリにログインすると、ユーザー名または電子メールに基づいてテーブルから情報が取得され、グリッドビューに設定されます。

お役に立てますように…

于 2012-06-25T07:35:18.337 に答える