我们目前正在开发代号为 FinAcuity 的 SAAS 应用程序,它将托管在 Windows Azure 平台上,主数据库将是 SQL Azure。
以下是我们产品的一些技术规格:
- 开发环境 - 带有 MVC 3 (Razor) 的 Asp.Net 4.0,实体框架
- 数据库 - SQL Azure
这是我们的商业案例:
- 我们的产品是 SAAS 产品,由于它包含客户的财务数据,我们将为每个客户提供单独的数据库,以实现更高级别的多租户、数据隔离和安全性。
- 现在客户可以在他们的帐户下创建多个公司,这些公司将由特定客户数据库下的架构分开。
注意:每个模式的表结构都是相同的。
以下是一些场景,可以让您更深入地了解我们的应用程序流程。
场景一:
- 为了在客户端注册时配置新数据库,我们将运行存储过程,该过程将创建具有基本结构的数据库。
- 我们的疑问:这是在 SQL Azure 上执行此操作的正确方法还是有其他方法?
场景二:
- 为了访问客户端数据库下的多个模式,我们为单个模式动态生成 SSDL 文件并使用该文件进行连接。
- 我们的疑问:还有其他方法吗,例如使用相同的 SSDL 文件实例进行多个连接并传递元数据进行连接?
场景 3:
- 由于我们的应用程序支持从 Excel 文件进行临时查询和动态表创建,我们将提供将在后端运行存储过程的向导,并在客户端数据库的特定模式下从向导中选择标头后从 Excel 文件动态创建该表.
- 我们的疑问:如果有的话,给我们建议一个更好的方法吗?
场景四:
- 现在,将新表添加到模式中,我们必须更新 EDMX 文件以从新创建的表中获取数据。为此,我们将运行将从新创建的表中获取数据的存储过程。
- 我们的疑问:有没有办法更新 EDMX 文件运行时和获取数据?
需要针对上面列出的每个场景的最佳解决方案的建议。
先感谢您。
最好的问候 - 萨希尔