我需要存储经过身份验证的用户的一些属性(我正在使用Membership API),我需要在使用Profiles或添加UserId作为PK的新表之间做出选择。看起来使用“个人档案”很快,并且需要预先减少工作量。但是,我看到以下缺点:
我的第一印象是,从长远来看,使用配置文件可能会导致维护问题。想法?
答案 0 :(得分:3)
有一篇关于MSDN(现在在ASP.NET http://www.asp.net/downloads/sandbox/table-profile-provider-samples上)的文章讨论了如何创建一个Profile Table Provider。我们的想法是将Profile数据存储在一个表中而不是一行中,这样就可以更容易地用SQL进行查询。
更重要的是,SQL Server 2005/2008支持通过服务和CLR代码获取数据。您可以想象通过API而不是直接访问基础表来访问配置文件数据。
对于第2点,您可以将默认值设置为属性,虽然这不会立即更新其他配置文件,但在下次访问时,配置文件会更新。
答案 1 :(得分:0)
在我看来,你已经回答了自己的问题。如果您的第1点可能发生,那么SQL表是唯一明智的选择。
答案 2 :(得分:-1)
看看这个问题......
ASP.NET built in user profile vs. old stile user class/tables
内置配置文件设计错误的第一个提示是它们在关系数据库中使用分隔数据。在少数情况下,RDBMS中的分隔数据是有意义的,但这绝对不是其中之一。
除非您有特殊原因 使用ASP.Net个人资料,否则我建议您改用单独的表格。