代码之家  ›  专栏  ›  技术社区  ›  Å¡ljaker

构建基于Web的业务应用程序应选择哪种策略

  •  0
  • Å¡ljaker  · 技术社区  · 16 年前

    我计划在ASP.NET MVC中创建一个会计应用程序。
    每个用户每月支付订阅费,我提供每日备份等。

    我不知道该选择哪种策略:

    1. 为每个用户使用SQL CE4并在单独的虚拟目录中运行应用程序。
    2. 将所有内容放入单个SQL Server数据库

    这两种选择的利弊是什么?
    如果我选择选项2,我将不得不在代码中编写更多的逻辑。我必须防止用户看到他们不应该看到的东西(更多的访问数据库)。

    最重要的两件事是:

    1. 系统总体性能
    2. 能够为不同的用户轻松创建备份。

    我预计有20到30个用户。

    任何建议都将不胜感激。

    2 回复  |  直到 16 年前
        1
  •  3
  •   AcidRaZor    16 年前

    我会一如既往地选择第二个选项。我来自一个激烈的金融一体化背景,所以选择2(至少对我来说)是最好的。

    在考虑数据的使用时,没有矛盾。没有比选项1更多的往返行程。

    系统的性能通常由程序员决定。如果编写糟糕的代码,您可能会期望糟糕的性能。选项2提供了最简单的备份选项,因为您只需要担心1个数据库。如果使用1个数据库,那么对于单独的用户根本不需要考虑这一点。

    回复:对于用户来说(或者你的代码中处理这个问题的更多“逻辑”),添加“where userid=x”有多困难?

    无论如何,您应该用存储过程来分隔.NET代码,这样从头开始写入就不应该再出现(甚至更少)往返/文件访问问题,而不是使用选项1。

        2
  •  0
  •   Cade Roux    16 年前

    如果在单个数据库中进行多租户设计,您可能无法实际使用SQL Server的备份功能,因为备份单元不够好,无法单独备份每个用户的数据。你可以使用 partitions 文件组和只备份文件组,但是分区功能不完全易于管理,而且可能不适合这样做。

    如果您希望独立地为用户使用SQL Server的备份和恢复功能(从您的注释中听起来是这样),那么您可能需要将它们放在单独的数据库中。

    我已经说过了,我会重新考虑这个需求(考虑实现选择性的导出/导入),因为多租户架构总体上更容易处理。