2012-05-04 24 views
0

我一直在为此奋斗一段时间,似乎无法找到任何信息。ASP - 每个用户的SQL数据库的新实例?

我在C#中创建了一个使用SQL数据库,EntityFramework,ASP和.Net4的销售系统的在线销售点。我之前的编程经验是使用OpenGL和DirectX,所以这对我来说都是非常新的。

来自单个公司的用户将使用一个帐户登录该网站。然后他们可以使用在线直到和后台。到目前为止,该软件是使用单个SQL数据库开发的。我想要做的是让应用程序为每个帐户创建和使用不同的SQL数据库实例。

这听起来是否合理/可能,或者您希望所有用户都拥有一个庞大的数据库吗? - 注意:可能会有大量的用户存储大量信息,每个用户只需要访问他们自己的数据库。

任何建议,将不胜感激

感谢,

+0

**什么是**数据库系统,以及哪个版本? ** SQL **只是结构化查询语言(Structured Query Language) - 许多数据库系统使用的语言 - SQL是** NOT **数据库产品......类似这样的东西通常是供应商特定的 - 所以我们真的需要知道什么你正在使用的数据库系统.... –

+0

这对我来说似乎有点矫枉过正 - 大多数成熟的数据库可以处理大量的数据而没有任何问题,所以我真的不认为你会有任何问题,但如上所述它很难在不知道你使用的是什么数据库的情况下说更多? SQL Server?还有别的吗? –

+0

我使用SQL Server – user1374841

回答

1

这是否健全合理/可能的,或者你希望拥有所有用户 一个庞大的数据库? - 注意:可能有大量的用户存储大量信息,每个用户只需要访问他们自己的数据库。

这是可能的,但它是不明智的。用户不能访问数据库,应用程序可以。如果您的应用程序正在为用户提供在应用程序内创建自己的数据结构的能力(例如托管提供商会这样做),那么为每个用户分隔完整数据库才有意义。如果它只是为了容纳每个用户关联的多个相同的结构,那么你最好花一些时间来规范正确的关系结构(假设你提到你使用的是SQL),并优化查询/存储过程以使数据检索/插入速度很快。

如果您有效地对每个结构进行标准化(在大多数情况下通过用户键),RDBMS完全有能力处理大量用户和大量数据子集。

+0

+1 - 并且有一些方法可以为个人用户:在单一的数据库提供的自定义字段 –

+0

谢谢 - 因此单个数据库听起来像最明智的选择,但对于安全性?用户是否可以访问限制只读取与其相关的条目? 该计划旨在提供备份工具,并能够将个人用户数据恢复到以前的状态。使用单独的数据库,这只需要保存数据库的存档。这可以通过单个数据库解决方案来实现吗? – user1374841

+0

@ user1374841:通过用户密钥对记录进行规范化,可以通过多种方式限制对记录的许可。然而,这种限制是在应用程序级而不是在数据库级进行控制的。备份仍然可以实现,但我没有dba经验来建议适当的方法。 –

1

我认为这不是一个好办法,因为是否会有任何方案的变化,你将不得不保持同步的每个数据库实例。

相关问题