我的问题与特定技术无关,而与应该选择的设计方法有关。我的公司即将创建一个 Web 应用程序,其用户将是公司公司。该应用程序将存储所有注册/注册公司的数据,包括财务数据。从数据库的角度来看,我们不确定应用程序的架构应该是什么。
我可以想到两种方法:
具有相同代码库的所有公司的单一数据库。使用公司表标识公司。
每个公司的单独数据库具有相同的代码库,或者每个公司/客户可能是不同的代码库。
这两种方法都有其优点和缺点。如果使用单个数据库,则数据大小将快速增加,并且由于多个公司用户访问同一数据库的负载可能会遇到性能问题。这种方法的好处是模式很容易管理模式。另一方面,单独的数据库具有降低性能开销和公司数据隐私的好处。但困难的部分是需要在所有公司数据库中复制模式中的单个更改。
这些是我们所知道的。作为我们政策的一部分,我们不会将代码出售给公司/客户。他们只会购买许可证。
我们只对关系数据库感兴趣,不会使用 NoSQL。此外,客户/公司的数量将不受限制,可以增长到任意数量。
设计这种场景的数据库架构的更好方法是什么。我知道有成千上万的应用程序在开发之前可能会遇到这种情况,但这是我第一次 :)
所以真的很想你就什么是更好的方法提供意见。
非常感谢!