我对Cassandra建模的方式是,我有几张具有相同分区键-Uuid的表。
每个表都有它的分区键,其他列代表我要询问的特定查询的数据。
例如-1个表具有有关其状态的Uuid和列(此表中没有其他集群键),而表2将包含相同的Uuid(也没有集群键),但具有不同的列表示此Uuid的数据。 / p>
这是正确的建模吗?在表周围复制相同的分区键,以便将每个表分组以容纳特定用例的相关列,是否错误?还是只希望使用1个表并对其进行查询,并获取代码中特定用例的相关数据?
答案 0 :(得分:6)
此建模没有错误。与仅包含两个数据的一个表的明显替代方案相比,是好还是坏取决于您的工作量: 例如,如果您通常需要读取同一uuid的状态和数据列,则如果两者都在同一张表中,则这些读取将更有效,而这只需要查找一次。如果您始终只读取一个而不是两个都读取,那么从单独的表读取将更有效。另外,如果这种工作负载不是全部以读取为主,而是全部以写入为主,那么只写一个表而不是写两个表会更有效率。