4

私のウェブサイトでは、デフォルトのメンバーシップクラスを使用しています。しかし、私は、ASPNETDBの複雑なデータベース設計と少し混乱しています。aspnet_Usersとaspnet_Membershipとは何ですか?どちらを使うべきですか?違いはなんですか?

名前、姓、住所などのユーザーの詳細を追加したいとしましょう。aspnet_Membershipテーブルまたはaspnet_Usersテーブルをどこに置くべきですか。なぜですか?私はaspnet_Membershipに詳細を載せるべきであることがわかります。しかし、なぜそれらの2つがaspnet_Usersにバインドされているのでしょうか。

または、ユーザーの詳細については、どのテーブルにキーする必要がありますか?

私は混乱しています。これら2つのテーブルの使用方法を教えていただければ幸いです。ここで

あなたはおそらく持つべきデフォルトASPNETDBするための図である。

enter image description here

答えて

5

よりもむしろASP.NETで構築されたメンバーシップのスキーマを変更し、あなたのユーザーに関するカスタムプロパティを格納するためにASP.NET profilesを使用することができます。ここにone tutorialがあります。

aspnet_regsql.exeを使用してスキーマにプロファイルテーブルを追加することができます(すでにほとんどのスキーマが生成されているため)。 -R pスイッチを使用して、プロファイルテーブル/ p​​rocsを取得します。

+0

おかげで、私は知っていたか、前のプロファイルの使用のために検索されませんでした。そして素晴らしいチュートリアル!私は、データベースにユーザーに関連するテーブルをいくつか追加してもまだ分かりません。どのテーブルをユーザーやメンバーシップで参照する必要がありますか、またプロファイルとその方法で解決できるでしょうか?ありがとうございました! – umutto

+1

この場合、より複雑なプロパティ(1から多くの関係など)を保存する必要がある場合は、必要な新しいテーブルを作成し、外部キーと一緒に物件を 'ApplicationId'フィールドと' UserId'フィールドに貼り付けます。 'aspnet_Membership'テーブル – wsanville

+0

ありがとうございます!私はそれでうんざりしていた! – umutto

2

ASP.NETメンバーシップスキーマによって提供されるテーブルを変更しないことをお勧めします。追加のデータを保存するには、前述のASP.NETプロファイルオプションを使用するか、請求書作成者に合ったカスタムのものを作成します。

ユーザデータを格納するテーブルが2つある理由は、すでにhere以上に回答されています。 正しい解決策を選択することを幸運。

+0

ありがとう!私はその質問を見たことはありません、私の好奇心を出してくれることは間違いありません。 – umutto

3

カスタムテーブルをASP.NETメンバーシップに接続する場合は、aspnet_Membershipテーブルではなくaspnet_Usersテーブルから外部テーブルとしてUserIdテーブルを使用します。参考のため、aspnet_Profile、またはaspnet_Membershipでさえ、aspnet_UsersテーブルからUserIdを外部キーとして使用していることに注意してください。

ここでデータベースダイアグラムを参照してください。 http://msdn.microsoft.com/en-us/library/Aa478948.asp2prvdr0102l(l=en-us).gif

幸運...答えを

関連する問題