我计划在asp.net mvc中创建一个会计应用程序。
每个用户将支付每月订阅,我将提供每日备份,等等。
我不知道该选择哪种策略:
这两种选择的优缺点是什么?
如果我选择选项2,我将不得不在代码中编写更多的逻辑。我必须阻止用户看到他们不应该看到的东西(更多的访问数据库)。
最重要的两件事是:
我预计会有20到30个用户。
如有任何建议,将不胜感激。
发布于 2010-07-26 10:26:15
我会一如既往地选择第二种选择。我来自一个强烈的金融一体化背景,所以选项2(至少对我来说)是最好的。
在考虑数据的使用时,不存在欺诈。没有比备选方案1更多的往返旅行。
系统的性能一般由程序员决定。如果您编写糟糕的代码,您可能会期望糟糕的性能。选项2提供了最简单的备份选项,因为您只需要担心1个数据库。如果使用1个数据库,则完全没有必要为单独的用户考虑这一点。
RE:对于用户(或者在代码中有更多的“逻辑”来处理这个问题),添加"Where userID = x“有多难呢?
无论如何,您应该将您的.net代码与存储过程分开,这样从头开始编写就不会再有(甚至更少)往返/文件访问问题,就像使用选项1一样。
发布于 2010-07-26 12:28:35
如果在单个数据库中进行多租户设计,则可能无法实际使用Server的备份功能,因为备份单元不足以单独备份每个用户的数据。您可以使用隔断和文件组,并且只备份文件组,但是分区特性不太容易管理,而且可能对此没有好处。
如果您希望独立地为用户使用SQL Server的备份和还原功能(从您的注释中可以看出这一点),那么您可能需要将它们放在单独的数据库中。
话虽如此,我还是会重新考虑这一需求(考虑实现选择性的导出/导入),因为多租户体系结构总体上要容易得多。
https://stackoverflow.com/questions/3337657
复制相似问题