我正在使用Cassandra数据库开展我的第一个项目,并且我试图围绕数据建模。我试图提出一个ColumnFamily定义,允许我存储一些可以建模的数据(在C#中),如下所示:
class the_data
{
public string prop_1;
public string prop_2;
public Dictionary<string, Dictionary<string, List<string>>> other_data;
}
现在,other_data可以将其键组合起来创建如下内容:
public Dictionary<string, List<string>> other_data;
(此词典中的键将是前一版本中两个键的组合)。
我相信我可以使用复合列在Cassandra中模拟这部分数据,如下所示:
CREATE TABLE some_data
{
row_key text,
other_data_outer_key text,
other_data_inner_key text,
other_data_value text,
PRIMARY KEY (row_key, other_data_outer_key, other_data_inner_key)
};
我不明白,或者(或许不可能),是如何使用复合列(因为other_data_outer_key和other_data_inner_key成为列名的一部分),以及其他列这不是复合列,也不是每个键组合都重复。
我喜欢这样的事情:
CREATE TABLE some_data
{
row_key text, <--- row key (partition key?)
prop_1 text, <--- just a normal column (one per row) #1
prop_2 text, <--- just a normal column (one per row) #2
other_data_outer_key text, <--- composite column name part 1
other_data_inner_key text, <--- composite column name part 2
other_data_value text, <--- composite column value
PRIMARY KEY (row_key, other_data_outer_key, other_data_inner_key)
};
这可能吗?我怎么能做到这一点?
答案 0 :(得分:1)
看一下静态列: http://www.datastax.com/documentation/cql/3.1/cql/cql_reference/refStaticCol.html
这提供了一种在具有聚类列的表中存储每个分区的属性的方法。