用于存储大量实体关系数据的正确数据库

时间:2015-10-31 01:06:07

标签: database database-design relational-database graph-databases nosql

我试图选择适合我用例的数据库。 以下是我试图存储在数据库中的简单示例:

让我们说,我们有'用户'和'团体'。每个用户都可以成为任意数量的组的一部分。组中也有层次结构,即..每个组可以有多个子组。(子组可以再次拥有grandChildren等等)。

要求:

  • 我将把MULTIPLE用户添加到父组,他们应该是 自动添加到其所有子组..所以,我只需要 获取给定组的所有子组并将这些用户添加到 他们每个人。这个操作应该是原子的。
  • 我有多个并行运行的线程更新组&向他们添加用户。我不想要任何竞争条件。

如果我们采用RDBMS方法,我们将拥有A User表,A Group Table和用户组映射关系表以及parentGroup-childGroup映射。 我将能够使用事务/锁等处理所有需求。

但是,   - 用户数量将达到数百万,每个用户数量达到    平均是一百个组的一部分和组的高度    层次结构树非常少(< 20),因此关系表是    会变得非常大。   - 存储在用户表中的数据是非结构化的。

据我所知,

  

NoSQL数据库可以轻松处理这种规模并且很好用   非结构化数据,但他们没有提供我需要的ACID功能和SQL   数据库不适合处理大量数据。

我不需要任何复杂的图遍历查询,我希望上面提到的那个。 我只需要简单的查询,例如获取A组中的所有用户,获取A用户的所有组等等。但这些查询应该很快。

那么,这个用例的正确数据库是什么?

0 个答案:

没有答案