在Cassandra中对两个列族进行非规范化

时间:2013-08-12 07:37:39

标签: cassandra denormalization

我想在Cassandra中进行查询,需要来自两个列族的数据。在sql中,我们通过外键和连接来实现它,但在Cassandra中没有定义这些概念。所以我想在Cassandra中对两个列族进行非规范化,但我不知道该怎么做。 有人可以帮我吗? 谢谢。

1 个答案:

答案 0 :(得分:1)

Denormalization表示您根据多个表中join的结果创建表。

在您的示例中,您有以下两个表:

Station (IDStation primary key, code, name, location, supervisor, citycode);
Information (IDInf primary key, IDstation, date, time, temprature, humidity, pressure);

其中Information具有Station表的外键。他们的非规范化表类似于以下

StationInfo (
  IDStation, 
  code,
  name,
  location,
  supervisor,
  citycode, 
  IDInf,
  date,
  time,
  temprature,
  humidity,
  pressure,
  PRIMARY KEY (IDStation, IDInf)
);

其中具有不同信息的同一站是不同的站。

如果Station和Information之间的关系是1:1映射,那么只能使用一个ID来描述它们:

StationInfo (
  IDStation primary key, 
  code,
  name,
  location,
  supervisor,
  citycode, 
  date,
  time,
  temprature,
  humidity,
  pressure
);