SaaS 应用程序中的持久层

Persistence Layer In SaaS Application

我已经计划了一个 SaaS 应用程序,我们选择 Java 来构建后端,尚未选择要使用的框架,我选择使用 Ember JS 和 Bootstrap 或 Foundation with Bootstrap 或 Angular JS with Bootstrap 用于构建应用程序的前端。

我对持久层感到困惑,我应该选择传统的关系数据库还是应该选择 'Nosql Database'。

这个想法简单直接,在 SaaS model.The 模块中提供高度可配置的学校管理系统,首先我将致力于 School/Universities/Colleges/Coaching 中心的时间和出勤跟踪 etc.As您可以看到出勤政策(迟到、缺勤、出席)因学校、大学、大学系与系、系内教师与教师、教练与教练等而异。我们的应用程序不会部署到各自的服务器并将托管在云中,因此一个应用程序 运行 适应动态策略 运行 与另一个应用程序隔离。

我的数据预计会随着时间的推移而快速增长,因为每个 school/coaching/institute 都将包含以下实体的数据,以下实体将使用应用程序、家长、学生、教师、原则,想入学的人,苦工等

我阅读了针对同类查询发布的问题的答案,我发现人们已经将关系数据库用于此类应用程序,但他们是在 5-10 年前构建的,当时还没有 Nosql 数据库的概念,我们所知道的都是关系型,面向对象的数据库,所以说他们选择当时可用的堆栈并没有错

我认为你应该选择关系数据库,我认为没有必要使用 Nosql 数据库,我相信你将拥有的模式是静态的,你也需要维护复杂的关系。 看看 'Multi tenant Architecture' ,我建议您为每个客户端使用一个数据库,而不是为所有客户端使用一个数据库。 让我们看看其他人会向您推荐什么。