1

我打算做一个网站,人们必须登录才能访问它。很容易。现在,一旦他们登录,根据他们的会员信息,我希望网站使用特定的数据库。

因此,我可以拥有 100 个具有相同结构的数据库,但每个特定用户组的数据不同 - 而不是拥有一个大型数据库并确定他们可以使用标识符列访问哪些数据。

不确定我在这里是否有意义。基本上,一个网站,多个网站取决于会员资格。

我有办法做到这一点吗?是否有另一种有效的方法?

谢谢!!

4

1 回答 1

2

如果我理解正确,您仍然只有一个 Membership 数据库,并且在身份验证之后,根据某些标准,您的应用程序会根据用户切换连接字符串,但它只是一个应用程序。

从技术上讲,这并不是特别具有挑战性,因为所有常见的数据访问机制(Linq2SQL、EntityFramework、SQLClient 等)都允许在运行时提供连接字符串。您可以将 100 个连接字符串添加到您的 web.config,或者将它们存储在其他地方(例如您的初始会员数据库)。

但是,从长远来看,您可能会发现更容易根据用户与数据的关联过滤特定的数据,并只保留一个数据库。

考虑

  • 如果允许用户访问多个“数据库”价值的数据会发生什么情况。在一个数据库模型中,它就像在 user:data many:many 表中添加另一个链接一样简单。
  • 您现在有 100 个数据库要备份、索引等(?许可!)。
  • 整合数据的报告现在必须跨 100 个数据库加入
  • 对于这么多数据库,SQL 缓存和连接池不会那么有效。
  • 如果您需要更改架构或存储过程怎么办?您现在需要在任何地方复制它。

等等

于 2012-05-16T18:19:19.653 回答