我正在开发一个管理/规划应用程序,该应用程序将有 1,000 多个用户,每个用户有 30 多个数据集合。
例如,每个用户可能有一组客户联系人,少则 10 条,多则数百项/记录。
Arangodb 是否适合此应用程序?
还有更好的选择吗?
非常感谢,
LRP
最佳答案
我假设所有用户数据库都应该分开保存,所以用户 1 不应该看到用户 2 等的任何数据。
如果是这样,可以选择为每个用户创建一个单独的数据库,或者如您提到的为每个用户创建 30 多个数据库。这将产生 30,000 多个数据库。我认为这不是 ArangoDB 的理想用法,因为每个数据库都会产生一些开销,并且您可能希望 ArangoDB 中的数据库总数保持相对较小,至少您不会在其中创建 30,000 多个数据库.
另一种选择是不创建那么多数据库,而是创建尽可能多的集合,也许都在同一个数据库中。虽然这提供了用户数据的良好分离,但从资源使用的角度来看,这也将是相当昂贵的(因为如果每个集合包含数据,则可能需要一个单独的存储文件)。我认为如果不是所有用户/集合都需要同时处于事件状态并且服务器有大量资源(或者您将数据拆分到多个服务器),它可能会起作用。
在 ArangoDB 中使用最少资源的解决方案是将多个用户的数据放入几个集合中。对于每条记录,您可以存储一个用户 ID,并让您的应用程序在每个查询中使用该用户 ID。 这将确保应用程序一次只能访问一个特定用户的记录。此外,由于这将只使用很少的集合,因此无需为数据很少的用户创建空的或几乎是空的数据库/集合。从资源使用的角度来看,这应该是比较高效的。
关于arangodb - 1000+用户,30+私密数据集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26789885/