我正在设计一个库存控制web应用程序,最初,我将为每个客户/客户端使用一个数据库。我现在有一些客户想要定制的信息,所以他们可能想要一些我的基本应用程序可能没有的特定信息。除此之外,一些客户将来可能希望将此应用程序本地存储在他们的商店/商务服务器中,因此他们可能需要所有信息。我认为如果我使用一个数据库,性能不会有问题,至少对少数客户不会有问题。然而,在考虑连接池时,使用每个用户一个数据库可能会使性能变得复杂。
那么,什么可能是最好的方法呢?如果需要,我会提供更多信息。
此外,如果我为每个用户使用一个数据库,我将如何管理连接字符串?如果用户登录,我的后端如何知道该用户必须访问特定的数据库?我会将连接字符串存储在数据库中吗?如果是这样,这难道不是一个安全问题吗?
我计划在后台使用postgresql和node.js。。
谢谢你们!
我看到您试图解决的两个问题
-
如何开发我的应用程序,让任何用户都可以在自己的环境中托管它
在这种情况下,你应该使用一个数据库,这样你就可以确保它很容易移植
-
我的应用程序如何在集中式主机上支持多个用户
您仍然应该使用一个数据库,但要弄清楚如何创建不同的方式来存储要在每个客户唯一id的基础上加入的数据。不过,这将变得庞大而复杂,具体取决于每个客户的数据差异。此外,您的应用程序需要处理这种动态状态,因此问题不仅在于选择数据库,还在于如何编排动态数据。
总的来说,我不会在每个用户的基础上处理连接字符串,而是将一组客户保留在基本设置中(静态预先确定的模型(,并在获得复杂客户时找出如何处理这些客户(动态模型(。最终,一旦你有了很多样本案例,你就可以慢慢地开发一个更大的应用程序,可以处理所有不同的案例。尝试设计一个应用程序来处理你还没有的动态数据并非易事。