1000多名用户,30多名私人数据收集



我正在开发一个管理/规划应用程序,该应用程序将拥有1000多个用户,每个用户拥有30多个数据收集。

例如,每个用户可能都有一个客户联系人的集合,其中只有10个,多达几百个项目/记录。

Arangodb是否适合此应用程序?

有更好的选择吗?

非常感谢,

LRP

我假设所有的用户数据库都应该分开,所以用户1不应该看到用户2等的任何数据。

如果是这样,可以为每个用户创建一个单独的数据库,或者,正如您所提到的,为每个用户建立30多个数据库。这将产生30000多个数据库。我认为这不是ArangoDB的理想用法,因为每个数据库都会产生一些开销,并且你可能希望保持ArangoDB中数据库的总数相对较小,至少你不会在其中创建30000多个数据库。

另一种选择是不创建那么多数据库,而是创建尽可能多的集合,可能都在同一个数据库中。虽然这提供了用户数据的良好分离,但从资源使用的角度来看,这也相当昂贵(因为如果每个集合包含数据,则可能需要单独的存储文件)。我认为,如果不是所有用户/集合都需要同时处于活动状态,并且服务器有充足的资源(或者将数据拆分到多个服务器上),那么它是可行的。

在ArangoDB中使用最少资源的解决方案是将多个用户的数据放入几个集合中。对于每个记录,您可以存储一个用户id,并让应用程序在每个查询中使用该用户id。这将确保应用程序一次只能访问一个特定用户的记录。此外,由于这将只使用很少的集合,因此无需为数据较少的用户创建空的或大部分为空的数据库/集合。从资源使用的角度来看,这应该是相对高效的。

最新更新