所以我有一个表,它目前在mysql中,但很快就会转移到nosql系统中。所以我去掉了表的规范化,现在有重复的数据,但是每行中有一个is改变了,而其余的数据是不变的。所有行都通过ID A连接。ID B每行都会更改,并且ID A中的所有行的用户ID都是相同的。
现在我需要使用用户ID抓取两组行。ID B的数量对于每一组A都是可变的,所以它可以具有由每个ID A分组在一起的变量行数。到目前为止,我一次只显示一组,所以我一直基于ID A进行选择,现在我需要尝试通过用户ID抓取2组...
我似乎找不到做this...although的方法,我对sql并不是一无所知。我现在如何在mysql上做到这一点?然后当我移动到系统时,在nosql上呢?将很乐意回答任何进一步的问题。
发布于 2012-08-19 21:08:42
我想您是在说,行有一个由两列组成的组合键,id分别是A和B。假设我得到了正确的结果,那么在Cassandra中是如何做到这一点的(有两种方法)。
您可以使用CQL并声明您的表有两个主键A和B,以及原始MySql表中的任何其他列。
您还可以创建一个列族,它的行键是id A,并且该id A的每个唯一id B都有一个列。该列的名称将是id B的值,该列的值将是其余MySQL行值的值(或序列化值)。请注意,id B不必是字符串值。对于id A的任何给定值,这将产生一个Cassandra列族行,其列数与该id A值的唯一id B值的列数相同。这称为“动态列族模式”。
如果你采用第一种方法,你基本上会在幕后做第二种方法(过度简化警报)。
https://stackoverflow.com/questions/12029827
复制