1000多个用户,30多个私人数据集合

时间:2014-11-06 21:39:18

标签: arangodb database nosql

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

例如,每个用户可能拥有一组,例如,客户联系人只有10个,多达数百个项目/记录。

Arangodb是否适合此应用?

有更好的选择吗?

非常感谢,

LRP

1 个答案:

答案 0 :(得分:1)

我假设所有用户数据库都应该保持独立,因此用户1不应该看到用户2的任何数据等。

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

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

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