NoSQL(Cassandra,MongoDB ..)查看和更改masterdata

时间:2016-05-11 06:50:42

标签: mongodb cassandra data-modeling nosql

我目前正试图设计一个"表" Cassandra中的模型(但问题也属于MongoDB等其他NoSql数据库)。

以下情景:

  • 从车辆到商店的非常多的GPS位置
  • 车辆属于一家公司
  • 车辆可属于一个或多个车辆组(在公司中)
  • 用户属于一家公司
  • 用户可以拥有一个或多个车辆组(在他的公司中)的权利

我尝试设计"表"就像用户查询数据一样,例如: gpsposition_by_company: 公司| vehiclegroup |车辆|经度|纬度

现在我的问题: 如果车辆或用户改变其团体会员资格,我该怎么办?

目前我看到了几个选项:

  1. 不要在物化视图中保存车辆组,而是使用关系" table"。因此,我必须首先查询用户允许的车辆和每辆车gpspositions的第二次查询
  2. 也使用关系表,但查询公司的所有gps位置,过滤服务器端允许的车辆。
  3. 这两个选项对我来说都不合适。你怎么看待这件事?在非关系数据库中是否有任何模式可以解决这个问题?

    此致 马库斯

1 个答案:

答案 0 :(得分:1)

解决问题的方法取决于您在多语言持久性方面的舒适程度。在类似的用例中,我们将关系数据库中的所有关系数据和在Cassandra中保存的指标(在您的情况下为gps位置)作为时间序列进行混合。这使我们能够灵活地更新关系数据(将车辆从一个组移动到另一个组,更新其参数等),还可以保存并随后分析数据(车辆运动,从A到B等所花费的时间)。 你可以只和Cassandra一起去,但这会花费你很多时间,你将不得不解决很多问题。