【问题标题】:Managing users when using a stand alone database as the membership provider使用独立数据库作为会员提供者时管理用户
【发布时间】:2010-09-02 14:31:33
【问题描述】:

当使用独立数据库作为成员资格提供程序时,通常在数据库中为应用程序提供一个特定于应用程序的用户表吗? 例如,假设我有一个为用户管理消息的应用程序。通常我会有一个 user_messages 表并引用用户表外键?但是,如果我只使用会员数据库中的 id,我就无法通过外键引用用户的消息。

任何指针都非常感谢

【问题讨论】:

  • 为什么不呢?仅仅因为成员位于单独的数据库中并不意味着您不能在数据库的 user_messages 表中使用他们的 ID。
  • 对,我可能想多了。但是如果用户被删除,那么我就会留下一堆孤儿对象。我想我可以用代码处理这个问题。感谢您的意见。

标签: database-design architecture asp.net-membership


【解决方案1】:

"如果我只使用 会员分贝我不能参考 用户通过外键发送的消息"

这里的问题是外键的执行。我不知道任何支持通过数据库链接引用表的外键的 DBMS。即使有可能,它是可取的吗?这样的安排意味着,如果远程数据库因任何原因离线,我们将无法在本地数据库中插入子记录。

在这种情况下,正常的解决方法是复制,即在本地数据库中维护远程表的副本。如果我们有一个支持远程物化视图的 DBMS,这可能是一个非常简单的实现。

【讨论】:

    【解决方案2】:

    我也对此感兴趣。这可能不符合答案 - 但我会在实施后更新。

    我还将 ASP.NET Membership Provider 与我的网络应用程序一起使用;虽然我已经在我的数据库中包含了 Membership Provider 的 SQL 表和 Procs,但我保持了逻辑分离,因此如果你也想单独运行它。

    尽管您在这里关注的是数据库问题(这很公平),但重要的是要记住,使用 ASP.NET Membership Provider 您处理的不仅仅是数据库。关于 ASP.NET Membership Provider 的事情是提供者本身——实际的数据存储库被抽象出来了。

    我假设通过 ASP.NET 成员资格提供程序,我将能够使用提供程序本身的服务/API 来帮助管理您正在谈论的关系。所以我不会专门依赖数据库——因为“提供者”是我应该通过的面向外部的接口,使用它会将我与该数据源联系起来。

    【讨论】:

      猜你喜欢
      • 2020-08-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-13
      • 1970-01-01
      • 2021-11-14
      相关资源
      最近更新 更多