连接复杂数据到ASP.Net会员表的最佳数据库设计方法

 2023-02-16    409  

问题描述

我希望使用稍微修改的ASP.NET成员资格提供商来处理网站中的标准用户帐户创建/身份验证/等.我们有大量的旧数据,我需要迁移,以便使用现有用户的保存信息(例如订单历史记录,愿望清单等)提供连续性. [注意:我们无论如何都必须迁移,所以这不是我们迁移数据的原因]

我想知道将这些附加数据加入ASP.NET成员表的明智方法是什么.我可以在用户表上使用两个唯一的键 – 用户ID或电子邮件 – 我们将用作用户名的代理.

连接复杂数据到ASP.Net会员表的最佳数据库设计方法

我的问题是,在我的表格中其他地方用于存储订单,愿望清单等,更好的访问模式(以及外键)是什么?

在httpcontext中,有一个用户对象,其中包含”用户名”,我们的电子邮件地址,
但没有可用的用户ID.

我看到了3个选项:

  1. 我想简单地使用唯一的IdentiDifier用户ID来在冗长的VARCHAR电子邮件地址上访问效率,但是如果没有额外的数据库调用,它似乎不容易获得通过电子邮件/登录来获取它.有什么方法可以获取用户ID,以便我可以将其作为不同表上的外键?
  2. 我可以将电子邮件地址(用户名)作为输入参数传递,在userId上加入电子邮件地址= @emailAddress,然后将用户ID用作其他表上的外键.

不可生存

  1. 我可以将用户名/电子邮件地址存储在所有其他表上作为外键 – 这将是不幸的不规律

从DB的角度或从应用程序效率角度来看,对最佳方法的任何想法?

推荐答案

您可以获取用户ID:

MembershipUser myObject = Membership.GetUser();
        string UserID = myObject.ProviderUserKey.ToString();

或也许(请检查)

string userId = Membership.GetUser(User.Identity.Name).ProviderUserKey.ToString();

以上所述是小编给大家介绍的连接复杂数据到ASP.Net会员表的最佳数据库设计方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对77isp云服务器技术网的支持!

原文链接:https://77isp.com/post/34046.html

=========================================

https://77isp.com/ 为 “云服务器技术网” 唯一官方服务平台,请勿相信其他任何渠道。