如何创建一个表来维护cassandra中的层次结构?

2hh7jdfx  于 2021-06-10  发布在  Cassandra
关注(0)|答案(1)|浏览(304)

我们需要一个表来维护执行所有crud操作的层次结构。
样品:

- Karnataka
   - Bangalore
     - Kormangala
   - Hubli
 - Madhya Pradesh
   - Gwalior
 - Delhi

我想到了以下结构:
表1:

State ID(uuid)    Name            childCount
101               Karnataka        2
102               Bangalore        1
103               Kormangala       0
104               Hubli            0
105               Madhya Pradesh   1
106               Gwalior          0
107               Delhi            0

表2:

Parent_Id         child_id
101                102
101                104
102                103
105                106

请提出更好的解决方案。

wtzytmuj

wtzytmuj1#

简单解决方案:

CREATE TABLE state 
 (id int,
 name text,
 child_count int,
 PRIMARY KEY (id));

 CREATE TABLE hierarchy  
 (parent_id int,
 child_id int,
 PRIMARY KEY (id, child_id));

子项id必须是群集列。
不太明显的静态列解决方案:

CREATE TABLE state 
 (id int,
 name text static,
 child_count static,
 child_id int,
 PRIMARY KEY (id, child_id));

有关静态列的详细信息:https://docs.datastax.com/en/dse/6.0/cql/cql/cql_using/refstaticcol.html
我希望这有帮助

相关问题