0

新しいasp mvc 4プロジェクトを構築しています。そして、私は追加しましたApplication_Start()

 WebSecurity.InitializeDatabaseConnection(
                "DefaultConnection", 
                "UserProfile", 
                "UserId", 
                "UserName", 
                true);

アプリケーションを起動すると、図のようなデフォルトのテーブルが作成されました。UserProfileニーズに合わせて拡張しました。
ダイアグラムでは、webpages_OAuthMembership & webpages_Membershipテーブルがどのテーブルとも関連付けられていないことがわかります。それらをFKとしてテーブル
にバインドする必要がありますか、それともこのままにしておく理由がありますか? 初めて 一緒に仕事をします。UserProfileUserId
SimpleMembership

ここに画像の説明を入力

4

1 に答える 1

1

それはあなた次第だと思いますが、私の意見ではお勧めしません。

主な考慮事項は次のとおりです。

  • FK が行うことは、参照整合性を強制することだけです (インデックスを注意深く管理するほどパフォーマンスに影響を与えることはありません)。
  • 私の知る限り、SimpleMembership には、参照整合性を使用した場合に壊れるシナリオはありません。
  • ただし、SimpleMembership は FK を使用せずにテーブルを作成するため、この方法で機能することがテストされています。したがって、FK を作成すると、一部の操作が中断される可能性があります (ただし、そうである可能性は低いです)。

したがって、FK は作成しません。SimpleMembership、WebSecurity、Membership、Roles などのクラスを使用して、すべてのメンバーシップ操作を行います。つまり、テーブルに直接アクセスする必要はありません。これはまた、参照整合性が SimpleMembership プロバイダーを壊すようなエッジ ケースがある場合、それらに遭遇するリスクがないことも意味します。

于 2013-10-20T22:04:45.793 に答える