2009-07-29 108 views
2

我正在使用SQLMembershipProvider,並且想要添加有關用戶的更多信息。這是創建新數據庫併爲每個新用戶創建條目的最佳方式嗎?如果是這樣,是否有任何理由不使用SQLMembershipProvider UserID值作爲我的新數據庫users表中的PK?擴展ASP.NET成員資格提供程序,PK == FK ==好嗎?

或者,有沒有什麼很好的理由在我的新數據庫中創建一個新的用戶標識並將SQLMembershipProvider用戶標識用作FK?

+0

這取決於您嘗試添加的信息的性質,但您是否考慮過使用配置文件功能來存儲信息? – 2009-07-29 16:04:48

+0

謝謝勃蘭特。我之前沒有遇到過配置文件功能。只需閱讀http://aspnet.4guysfromrolla.com/articles/101106-1.aspx這是一個很好的介紹。它不適合這個項目,除非我自己做了個人資料提供者。 – 2009-07-30 01:18:49

回答

2

我想不出一個原因,那就沒辦法了,或者爲什麼你不應該這樣做的(用戶ID作爲PK)

我不知道爲什麼你會使用一個單獨的數據庫的一切,我可能只是在當前數據庫中創建表並使用userid作爲FK將其設置爲aspnet_users表。

1

如果您打算重寫成員資格提供程序,我會將所有PK列從GUID切換到BITINT。我會這樣做的原因有兩個:一個連續的數字更容易處理和理解,其次是使用BIGINT而不是GUID ID的性能優勢。我也只是使用我自己的id列可以用來喜歡應用程序中的其他表,並刪除默認情況下在SQL成員資格提供程序中的一個。爲此,您需要爲提供者中的每個功能提供代碼,這不是一項小任務。

0

我創建了一個包裝在我現有的數據庫模式,從MembershipUser包含附加屬性派生的類,並創建派生MembershipUser類的實例的MembershipProvider衍生物。

我只使用成員身份驗證和更新方法,因爲其他支持API有一定的限制。我爲管理員使用了一個單獨的創建/編輯用戶API。

此解決方案目前正在多個站點上使用,並且運行良好。

相關問題